mirror of
https://gitee.com/lxp135/minio-plus.git
synced 2025-12-06 17:08:26 +08:00
性能优化:解决大量相同MD5文件创建时可能导致的慢SQL问题。
This commit is contained in:
parent
17c7220def
commit
43cbbf08e0
@ -168,22 +168,13 @@ public class StorageServiceImpl implements StorageService {
|
||||
// 查询MinIO中是否存在相同MD5值的文件
|
||||
FileMetadataInfoDTO fileMetadataInfo = new FileMetadataInfoDTO();
|
||||
fileMetadataInfo.setFileMd5(saveDTO.getFileMd5());
|
||||
List<FileMetadataInfoVo> alreadyFileList = fileMetadataRepository.list(fileMetadataInfo);
|
||||
fileMetadataInfo.setIsFinished(true);
|
||||
FileMetadataInfoVo alreadyFile = fileMetadataRepository.one(fileMetadataInfo);
|
||||
|
||||
boolean sameMd5 = false;
|
||||
|
||||
if (CollUtil.isNotEmpty(alreadyFileList)) {
|
||||
for (FileMetadataInfoVo fileMetadataInfoVo : alreadyFileList) {
|
||||
if (Boolean.TRUE.equals(fileMetadataInfoVo.getIsFinished())) {
|
||||
saveDTO.setStorageBucket(fileMetadataInfoVo.getStorageBucket());
|
||||
saveDTO.setStoragePath(fileMetadataInfoVo.getStoragePath());
|
||||
sameMd5 = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!sameMd5) {
|
||||
if (null != alreadyFile) {
|
||||
saveDTO.setStorageBucket(alreadyFile.getStorageBucket());
|
||||
saveDTO.setStoragePath(alreadyFile.getStoragePath());
|
||||
}else{
|
||||
// 新文件时,执行写入逻辑
|
||||
storageEngineService.createFile(saveDTO, fileBytes);
|
||||
}
|
||||
@ -215,22 +206,14 @@ public class StorageServiceImpl implements StorageService {
|
||||
// 查询MinIO中是否存在相同MD5值的文件
|
||||
FileMetadataInfoDTO fileMetadataInfo = new FileMetadataInfoDTO();
|
||||
fileMetadataInfo.setFileMd5(saveDTO.getFileMd5());
|
||||
List<FileMetadataInfoVo> alreadyFileList = fileMetadataRepository.list(fileMetadataInfo);
|
||||
fileMetadataInfo.setIsFinished(true);
|
||||
FileMetadataInfoVo alreadyFile = fileMetadataRepository.one(fileMetadataInfo);
|
||||
|
||||
boolean sameMd5 = false;
|
||||
|
||||
if (CollUtil.isNotEmpty(alreadyFileList)) {
|
||||
for (FileMetadataInfoVo fileMetadataInfoVo : alreadyFileList) {
|
||||
if (Boolean.TRUE.equals(fileMetadataInfoVo.getIsFinished())) {
|
||||
saveDTO.setStorageBucket(fileMetadataInfoVo.getStorageBucket());
|
||||
saveDTO.setStoragePath(fileMetadataInfoVo.getStoragePath());
|
||||
sameMd5 = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!sameMd5) {
|
||||
if (null != alreadyFile) {
|
||||
saveDTO.setStorageBucket(alreadyFile.getStorageBucket());
|
||||
saveDTO.setStoragePath(alreadyFile.getStoragePath());
|
||||
}else{
|
||||
// 新文件时,执行写入逻辑
|
||||
storageEngineService.createFile(saveDTO, inputStream);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user