From be779ec496afb89630886b93746cad5d20031d45 Mon Sep 17 00:00:00 2001 From: backdev-1 Date: Thu, 28 May 2026 13:07:09 +0700 Subject: [PATCH] dev add tariff info and control --- .../ru/soune/nocopy/controller/ApiController.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/ru/soune/nocopy/controller/ApiController.java b/src/main/java/ru/soune/nocopy/controller/ApiController.java index 7595638..8198419 100644 --- a/src/main/java/ru/soune/nocopy/controller/ApiController.java +++ b/src/main/java/ru/soune/nocopy/controller/ApiController.java @@ -7,6 +7,7 @@ import com.vrt.fileprotection.audio.AudioCheckResult; import com.vrt.fileprotection.documents.DocumentCheckResult; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.io.IOUtils; import org.springframework.core.io.InputStreamResource; import org.springframework.core.io.Resource; import org.springframework.data.domain.Page; @@ -163,7 +164,7 @@ public class ApiController { } @GetMapping("/internal/data-download/{fileId}") - public ResponseEntity getPublicFile(@PathVariable String fileId) { + public ResponseEntity getPublicFile(@PathVariable String fileId) { try { FileEntity fileEntity = fileEntityRepository.findById(fileId) .orElseThrow(() -> new FileNotFoundException("Not found in DB: " + fileId)); @@ -174,14 +175,17 @@ public class ApiController { .filename(fileEntity.getOriginalFileName(), StandardCharsets.UTF_8) .build(); - InputStream inputStream = cloudStorageService.readFileFromStorage(fileEntity.getFilePath()); - InputStreamResource resource = new InputStreamResource(inputStream); + byte[] fileBytes; + try (InputStream inputStream = cloudStorageService.readFileFromStorage(fileEntity.getFilePath())) { + fileBytes = IOUtils.toByteArray(inputStream); + } return ResponseEntity.ok() .contentType(mediaType) .header(HttpHeaders.CONTENT_DISPOSITION, contentDisposition.toString()) .header(HttpHeaders.CACHE_CONTROL, "public, max-age=3600") - .body(resource); + .body(fileBytes); + } catch (FileNotFoundException e) { log.warn("File not found in DB: {}", fileId); return ResponseEntity.notFound().build();