fix:支持删除空文件

This commit is contained in:
2026-03-25 17:06:49 +08:00
parent 5645fe59a1
commit 14909e0f1a
2 changed files with 11 additions and 1 deletions

View File

@@ -46,6 +46,10 @@ public class FileDeleteServiceImpl implements IFileDeleteService {
@Override
public void deleteAllFileReleateInfo(List<Long> fileIds) {
fileMetadataInfoService.lambdaQuery().in(FileMetadataInfo::getId, fileIds).list().forEach(deleteFileMetadataInfo -> {
// 文件大小为 0 表示空文件MinIO 中不存在该文件,直接跳过删除
if (deleteFileMetadataInfo.getFileSize() != null && deleteFileMetadataInfo.getFileSize().equals(0L)) {
return;
}
minioService.deleteFile(deleteFileMetadataInfo.getObjectKey(), deleteFileMetadataInfo.getBucketName());
});

View File

@@ -253,7 +253,7 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
fileMetadataInfo.setDeletedAt(now);
fileMetadataInfo.setRecycleExpireAt(expireAt);
fileMetadataInfo.setUpdateTime(now);
fileMetadataInfoService.updateById(fileMetadataInfo);
log.info("文件已移入回收站: id={}, oldKey={}, newKey={}", fileMetadataInfo.getId(), oldKey, newKey);
} catch (Exception e) {
log.error("移入回收站失败", e);
@@ -808,6 +808,12 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
return SdmResponse.failed("文件不存在");
}
// 文件大小为 0 表示空文件MinIO 中不存在该文件,直接跳过删除
if (deleteFileMetadataInfo.getFileSize() != null && deleteFileMetadataInfo.getFileSize().equals(0L)) {
fileDeleteService.deleteAllFileReleateInfo(List.of(deleteFileMetadataInfo.getId()));
return SdmResponse.success("空文件彻底删除成功");
}
// 记录删除日志
saveTaskFileLog("删除了文件" + deleteFileMetadataInfo.getOriginalName(), OperateTypeConstants.DELETE, deleteFileMetadataInfo.getTaskId(), deleteFileMetadataInfo.getId());