From 69e758a71074155ebdf26cb550d944f8722db613 Mon Sep 17 00:00:00 2001 From: vladp Date: Tue, 31 Mar 2026 14:43:34 +0700 Subject: [PATCH] dev email send when tokens not found --- .../java/ru/soune/nocopy/service/FileSimilarityService.java | 6 +++++- src/main/java/ru/soune/nocopy/service/ImageHashService.java | 5 ++++- .../nocopy/service/file/impl/FileUploadServiceImpl.java | 6 ++++-- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/main/java/ru/soune/nocopy/service/FileSimilarityService.java b/src/main/java/ru/soune/nocopy/service/FileSimilarityService.java index cb7334c..96b6b04 100644 --- a/src/main/java/ru/soune/nocopy/service/FileSimilarityService.java +++ b/src/main/java/ru/soune/nocopy/service/FileSimilarityService.java @@ -17,6 +17,7 @@ import ru.soune.nocopy.entity.file.ImageHashEntity; import ru.soune.nocopy.entity.user.User; import ru.soune.nocopy.exception.DuplicateImageException; import ru.soune.nocopy.repository.*; +import ru.soune.nocopy.service.file.cloud.CloudStorageService; import ru.soune.nocopy.util.FileUtil; import java.io.File; @@ -41,6 +42,8 @@ public class FileSimilarityService { private final FileEntityRepository fileEntityRepository; + private final CloudStorageService cloudStorageService; + @Value("${server.baseurl}") private String baseUrl; @@ -198,8 +201,9 @@ public class FileSimilarityService { private String calculateFileHash(String path) throws Exception { MessageDigest digest = MessageDigest.getInstance("SHA-256"); + File file = cloudStorageService.readFileFromStorageByPath(path); - try (InputStream is = new FileInputStream(path)) { + try (InputStream is = new FileInputStream(file)) { byte[] buffer = new byte[8192]; int read; while ((read = is.read(buffer)) > 0) { diff --git a/src/main/java/ru/soune/nocopy/service/ImageHashService.java b/src/main/java/ru/soune/nocopy/service/ImageHashService.java index 0d1bbd6..9a97a55 100644 --- a/src/main/java/ru/soune/nocopy/service/ImageHashService.java +++ b/src/main/java/ru/soune/nocopy/service/ImageHashService.java @@ -8,6 +8,7 @@ import org.springframework.stereotype.Service; import ru.soune.nocopy.entity.file.FileEntity; import ru.soune.nocopy.entity.file.ImageHashEntity; import ru.soune.nocopy.repository.ImageHashRepository; +import ru.soune.nocopy.service.file.cloud.CloudStorageService; import java.io.File; import java.io.IOException; @@ -22,8 +23,10 @@ public class ImageHashService { private final ImageHashRepository repository; + private final CloudStorageService cloudStorageService; + public Map calculateHash(Path imagePath) throws IOException { - File file = imagePath.toFile(); + File file = cloudStorageService.readFileFromStorageByPath(imagePath.toString()); PHash pHash = PerceptualHashHelper.INSTANCE.generateDCTPerceptualHash(file); diff --git a/src/main/java/ru/soune/nocopy/service/file/impl/FileUploadServiceImpl.java b/src/main/java/ru/soune/nocopy/service/file/impl/FileUploadServiceImpl.java index bcf88b0..3f381f4 100644 --- a/src/main/java/ru/soune/nocopy/service/file/impl/FileUploadServiceImpl.java +++ b/src/main/java/ru/soune/nocopy/service/file/impl/FileUploadServiceImpl.java @@ -333,7 +333,8 @@ public class FileUploadServiceImpl implements FileUploadService { fileSimilarityService.hasDuplicatesByHash(finalFilePath ,session.getFileType(), session.getUserId()); - File file = new File(finalFilePath); +// File file = new File(finalFilePath); + File file = cloudStorageService.readFileFromStorageByPath(finalFilePath); if (session.getFileType().startsWith("audio") && !isWavFile(file)) { session.setStatus(UploadStatus.FAILED); @@ -389,7 +390,7 @@ public class FileUploadServiceImpl implements FileUploadService { fileEntity.getFilePath()); if (status != FileStatus.TEMP) { - FileProtector.FileInfo fileInfo = fileUtil.createFileInfo(fileEntity); + FileProtector.FileInfo fileInfo = fileUtil.createFileInfo(fileEntity, session.getConvertTo()); noCopyFileService.addFile(fileInfo); } @@ -532,6 +533,7 @@ public class FileUploadServiceImpl implements FileUploadService { private void checkForDuplicatesSynchronously(String filePath) throws IOException , DuplicateImageException { Path path = Paths.get(filePath); + Map hash = imageHashService.calculateHash(path); List duplicates = fileSimilarityService.findDuplicatedByHash(