From 45b7acc774d763135a4c5790b12d3f7bb6fc1219 Mon Sep 17 00:00:00 2001 From: vladp Date: Thu, 25 Dec 2025 13:04:49 +0700 Subject: [PATCH] fix after test --- docker-compose.yaml | 2 +- .../nocopy/controller/ApiController.java | 49 ++++++++++--------- .../service/file/FileUploadServiceImpl.java | 2 +- 3 files changed, 29 insertions(+), 24 deletions(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index ce90ce2..91e8d40 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -33,7 +33,7 @@ services: container_name: app-backend environment: FILE_STORAGE_PATH: /data/uploads - MAX_FILE_SIZE: 1073741824 + MAX_FILE_SIZE: 10737418240 FILE_CHUNK_SIZE: 5242880 POSTGRES_DB: no_copy_ POSTGRES_USER: postgres diff --git a/src/main/java/ru/soune/nocopy/controller/ApiController.java b/src/main/java/ru/soune/nocopy/controller/ApiController.java index 285857b..153e38a 100644 --- a/src/main/java/ru/soune/nocopy/controller/ApiController.java +++ b/src/main/java/ru/soune/nocopy/controller/ApiController.java @@ -89,29 +89,34 @@ public class ApiController { @PostMapping("/v{version}/files/chunk") public ResponseEntity uploadChunk( @PathVariable("version") int version, - @RequestParam("upload_id") String uploadId, - @RequestParam("chunk_number") Integer chunkNumber, - @RequestParam("chunk") MultipartFile chunk) { - - log.info("Uploading chunk {} for session {}, file size: {} bytes, version: {}", - chunkNumber, uploadId, chunk.getSize(), version); - - if (chunk.isEmpty()) { - return ResponseEntity.ok().body(new BaseResponse(20004, MessageCode.FILE_UPLOAD_ERROR.getCode(), - "Chunk file is empty", null)); - } - - if (uploadId == null || uploadId.isBlank()) { - return ResponseEntity.ok().body(new BaseResponse(20004, MessageCode.FILE_UPLOAD_ERROR.getCode(), - "Upload ID is required", null)); - } - - if (chunkNumber == null || chunkNumber < 0) { - return ResponseEntity.ok().body(new BaseResponse(20004, MessageCode.FILE_UPLOAD_ERROR.getCode(), - "Valid chunk number is required", null)); - } - + @RequestParam(value = "upload_id", required = false) String uploadId, + @RequestParam(value = "chunk_number", required = false) Integer chunkNumber, + @RequestParam(value = "chunk", required = false) MultipartFile chunk) { try { + if (chunk == null || chunk.isEmpty()) { + return ResponseEntity.ok().body(new BaseResponse(20004, MessageCode.FILE_UPLOAD_ERROR.getCode(), + "Chunk file null or empty", ChunkUploadResponse.builder() + .uploadId(uploadId) + .chunkNumber(chunkNumber) + .build())); + } + + if (uploadId == null || uploadId.isBlank()) { + return ResponseEntity.ok().body(new BaseResponse(20004, MessageCode.FILE_UPLOAD_ERROR.getCode(), + "Upload ID is required", ChunkUploadResponse.builder() + .uploadId(uploadId) + .chunkNumber(chunkNumber) + .build())); + } + + if (chunkNumber == null || chunkNumber < 0) { + return ResponseEntity.ok().body(new BaseResponse(20004, MessageCode.FILE_UPLOAD_ERROR.getCode(), + "Valid chunk number is required", ChunkUploadResponse.builder() + .uploadId(uploadId) + .chunkNumber(chunkNumber) + .build())); + } + fileUploadService.uploadChunk(uploadId, chunkNumber, chunk); ChunkUploadResponse responseBody = ChunkUploadResponse.builder() diff --git a/src/main/java/ru/soune/nocopy/service/file/FileUploadServiceImpl.java b/src/main/java/ru/soune/nocopy/service/file/FileUploadServiceImpl.java index 93c7d67..c84cf05 100644 --- a/src/main/java/ru/soune/nocopy/service/file/FileUploadServiceImpl.java +++ b/src/main/java/ru/soune/nocopy/service/file/FileUploadServiceImpl.java @@ -145,7 +145,7 @@ public class FileUploadServiceImpl implements FileUploadService { if (chunkNumber < 0 || chunkNumber >= session.getTotalChunks()) { throw new FileUploadException( - String.format("Invalid chunk number %d. Expected 0-%d", + String.format("Invalid chunk number %d. Expected number: %d", chunkNumber, session.getTotalChunks() - 1)); }