@@ -276,43 +276,53 @@ public class ApiController {
|
|||||||
|
|
||||||
private List<SimilarFileDTO> processNonImageFile(FileEntity fileEntity, boolean cloud) throws Exception {
|
private List<SimilarFileDTO> processNonImageFile(FileEntity fileEntity, boolean cloud) throws Exception {
|
||||||
List<SimilarFileDTO> results = new ArrayList<>();
|
List<SimilarFileDTO> results = new ArrayList<>();
|
||||||
|
File file = null;
|
||||||
FileEntity duplicateByHash = fileSimilarityService.findDuplicateByHash(fileEntity.getFilePath(),
|
FileEntity duplicateByHash = fileSimilarityService.findDuplicateByHash(fileEntity.getFilePath(),
|
||||||
fileEntity.getMimeType(), fileEntity.getUserId(), cloud);
|
fileEntity.getMimeType(), fileEntity.getUserId(), cloud);
|
||||||
|
|
||||||
log.info("duplicateByHash: {}", duplicateByHash);
|
log.info("duplicateByHash: {}", duplicateByHash);
|
||||||
|
|
||||||
if (duplicateByHash != null) {
|
if (duplicateByHash != null) {
|
||||||
results.add(fileSimilarityService.buildDTO(duplicateByHash));
|
results.add(fileSimilarityService.buildDTO(duplicateByHash));
|
||||||
|
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
File file = cloudStorageService.readFileFromStorageByPath(fileEntity.getFilePath());
|
try {
|
||||||
FileProtector.Type type = "document".equals(fileEntity.getMimeType()) ?
|
file = cloudStorageService.readFileFromStorageByPath(fileEntity.getFilePath());
|
||||||
FileProtector.Type.DOC : FileProtector.Type.AUDIO;
|
FileProtector.Type type = "document".equals(fileEntity.getMimeType()) ?
|
||||||
|
FileProtector.Type.DOC : FileProtector.Type.AUDIO;
|
||||||
|
|
||||||
NoCopyCheckResult checkResult = noCopyFileService.checkFile(file, type);
|
NoCopyCheckResult checkResult = noCopyFileService.checkFile(file, type);
|
||||||
log.info("checkResult: {}", checkResult);
|
log.info("checkResult: {}", checkResult);
|
||||||
|
|
||||||
switch (checkResult) {
|
switch (checkResult) {
|
||||||
case DocumentCheckResult.Success success -> {
|
case DocumentCheckResult.Success success -> {
|
||||||
FileProtector.FileInfo info = success.getInfo();
|
FileProtector.FileInfo info = success.getInfo();
|
||||||
FileEntity entity = fileEntityRepository.findByFileId(info.getId());
|
FileEntity entity = fileEntityRepository.findByFileId(info.getId());
|
||||||
if (entity != null) {
|
if (entity != null) {
|
||||||
results.add(fileSimilarityService.buildDTO(entity));
|
results.add(fileSimilarityService.buildDTO(entity));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
case AudioCheckResult.Success success -> {
|
||||||
case AudioCheckResult.Success success -> {
|
FileProtector.FileInfo info = success.getInfo();
|
||||||
FileProtector.FileInfo info = success.getInfo();
|
FileEntity entity = fileEntityRepository.findByFileId(info.getId());
|
||||||
FileEntity entity = fileEntityRepository.findByFileId(info.getId());
|
if (entity != null) {
|
||||||
if (entity != null) {
|
results.add(fileSimilarityService.buildDTO(entity));
|
||||||
results.add(fileSimilarityService.buildDTO(entity));
|
}
|
||||||
}
|
}
|
||||||
|
case DocumentCheckResult.Failed failed ->
|
||||||
|
log.warn("Document check failed: {}", failed.getMessage());
|
||||||
|
case AudioCheckResult.Failed failed ->
|
||||||
|
log.warn("Audio check failed: {}", failed.getMessage());
|
||||||
|
default -> log.warn("Unexpected result type: {}", checkResult.getClass().getSimpleName());
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new Exception("Files for search not valid");
|
||||||
|
} finally {
|
||||||
|
if (file != null && file.exists()) {
|
||||||
|
file.delete();
|
||||||
}
|
}
|
||||||
case DocumentCheckResult.Failed failed ->
|
|
||||||
log.warn("Document check failed: {}", failed.getMessage());
|
|
||||||
case AudioCheckResult.Failed failed ->
|
|
||||||
log.warn("Audio check failed: {}", failed.getMessage());
|
|
||||||
default -> log.warn("Unexpected result type: {}", checkResult.getClass().getSimpleName());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return results;
|
return results;
|
||||||
|
|||||||
@@ -176,8 +176,6 @@ public class CloudStorageService {
|
|||||||
|
|
||||||
s3Client.getObject(objectRequest, tempFile.toPath());
|
s3Client.getObject(objectRequest, tempFile.toPath());
|
||||||
|
|
||||||
tempFile.deleteOnExit();
|
|
||||||
|
|
||||||
return tempFile;
|
return tempFile;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user