This commit is contained in:
@@ -55,4 +55,7 @@ public interface FileEntityRepository extends JpaRepository<FileEntity, String>
|
|||||||
|
|
||||||
@Query("SELECT f FROM FileEntity f WHERE f.userId = :userId AND f.mimeType = :mimeType")
|
@Query("SELECT f FROM FileEntity f WHERE f.userId = :userId AND f.mimeType = :mimeType")
|
||||||
List<FileEntity> findByUserIdAndMimeType(Long userId, String mimeType);
|
List<FileEntity> findByUserIdAndMimeType(Long userId, String mimeType);
|
||||||
|
|
||||||
|
@Query("SELECT f FROM FileEntity f WHERE f.mimeType = :mimeType")
|
||||||
|
List<FileEntity> findByMimeType(String mimeType);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -110,9 +110,9 @@ public class FileSimilarityService {
|
|||||||
return duplicates;
|
return duplicates;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void hasDuplicatesByHash(String path, Long userId, String mimeType) throws Exception {
|
public void hasDuplicatesByHash(String path, String mimeType) throws Exception {
|
||||||
String hash = calculateFileHash(path);
|
String hash = calculateFileHash(path);
|
||||||
List<FileEntity> fileEntityList = fileEntityRepository.findByUserIdAndMimeType(userId, mimeType);
|
List<FileEntity> fileEntityList = fileEntityRepository.findByMimeType(mimeType);
|
||||||
|
|
||||||
for (FileEntity file : fileEntityList) {
|
for (FileEntity file : fileEntityList) {
|
||||||
if (calculateFileHash(file.getFilePath()).equals(hash)) {
|
if (calculateFileHash(file.getFilePath()).equals(hash)) {
|
||||||
|
|||||||
@@ -323,8 +323,7 @@ public class FileUploadServiceImpl implements FileUploadService {
|
|||||||
if (session.getFileType().startsWith("image")) {
|
if (session.getFileType().startsWith("image")) {
|
||||||
checkForDuplicatesSynchronously(finalFilePath);
|
checkForDuplicatesSynchronously(finalFilePath);
|
||||||
} else if (session.getFileType().startsWith("audio") || session.getFileType().startsWith("document")) {
|
} else if (session.getFileType().startsWith("audio") || session.getFileType().startsWith("document")) {
|
||||||
fileSimilarityService.hasDuplicatesByHash(finalFilePath, session.getUserId(),
|
fileSimilarityService.hasDuplicatesByHash(finalFilePath ,session.getFileType());
|
||||||
session.getFileType());
|
|
||||||
|
|
||||||
File file = new File(finalFilePath);
|
File file = new File(finalFilePath);
|
||||||
FileProtector.Type type = "document".equals(session.getFileType()) ?
|
FileProtector.Type type = "document".equals(session.getFileType()) ?
|
||||||
|
|||||||
Reference in New Issue
Block a user