From 71aa8ee01a5d0aa9f1382c16c942838e770e2688 Mon Sep 17 00:00:00 2001 From: backdev-1 Date: Thu, 23 Apr 2026 14:11:05 +0700 Subject: [PATCH] dev add cold storage --- .../ru/soune/nocopy/controller/ApiController.java | 3 +-- .../soune/nocopy/service/FileSimilarityService.java | 11 ++++------- .../service/file/cloud/CloudStorageService.java | 1 + 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/src/main/java/ru/soune/nocopy/controller/ApiController.java b/src/main/java/ru/soune/nocopy/controller/ApiController.java index 6a550ce..172cb38 100644 --- a/src/main/java/ru/soune/nocopy/controller/ApiController.java +++ b/src/main/java/ru/soune/nocopy/controller/ApiController.java @@ -261,7 +261,6 @@ public class ApiController { } return ResponseEntity.ok(response); - } catch(IllegalArgumentException e) { log.error("Error with file extensions : {}", e.getMessage(), e); return ResponseEntity.ok().body(new BaseResponse(MessageCode.FILE_FOR_SEARCH_NOT_VALID.getCode(), @@ -287,7 +286,7 @@ public class ApiController { return results; } - File file = new File(fileEntity.getFilePath()); + File file = cloudStorageService.readFileFromStorageByPath(fileEntity.getFilePath()); FileProtector.Type type = "document".equals(fileEntity.getMimeType()) ? FileProtector.Type.DOC : FileProtector.Type.AUDIO; diff --git a/src/main/java/ru/soune/nocopy/service/FileSimilarityService.java b/src/main/java/ru/soune/nocopy/service/FileSimilarityService.java index 65a3e11..f216840 100644 --- a/src/main/java/ru/soune/nocopy/service/FileSimilarityService.java +++ b/src/main/java/ru/soune/nocopy/service/FileSimilarityService.java @@ -124,7 +124,9 @@ public class FileSimilarityService { List userIds = new ArrayList<>(); if (company != null) { - userIds.addAll(company.getUsers().stream().map(User::getId).toList()); + userIds.addAll(company.getUsers().stream() + .map(User::getId) + .toList()); } else { userIds.add(userId); } @@ -132,16 +134,10 @@ public class FileSimilarityService { List fileEntityList = fileEntityRepository.findByMimeTypeAndUserIds(mimeType, userIds); for (FileEntity file : fileEntityList) { -// if (file.getProtectedFilePath() == null) continue; -// File existingFile = cloudStorageService.readFileFromStorageByPath(file.getFilePath()); -// File newFile = new File(path); - -// if (existingFile.length() == newFile.length()) { if (!file.getStatus().name().equals(FileStatus.TEMP.name()) && calculateFileHash(file.getFilePath(), true).equals(hash)) { return file; } -// } } return null; @@ -217,6 +213,7 @@ public class FileSimilarityService { } byte[] hashBytes = digest.digest(); + return Base64.getEncoder().encodeToString(hashBytes); } diff --git a/src/main/java/ru/soune/nocopy/service/file/cloud/CloudStorageService.java b/src/main/java/ru/soune/nocopy/service/file/cloud/CloudStorageService.java index 9449fae..3a65ded 100644 --- a/src/main/java/ru/soune/nocopy/service/file/cloud/CloudStorageService.java +++ b/src/main/java/ru/soune/nocopy/service/file/cloud/CloudStorageService.java @@ -198,6 +198,7 @@ public class CloudStorageService { try { ResponseBytes responseBytes = s3Client.getObjectAsBytes(objectRequest); + return responseBytes.asByteArray(); } catch (Exception e) { log.error("Failed to read file from S3: {}", filePath, e);