diff --git a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/engine/impl/StorageEngineServiceImpl.java b/minio-plus-core/src/main/java/org/liuxp/minioplus/core/engine/impl/StorageEngineServiceImpl.java index 9901e3d..e2b5230 100644 --- a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/engine/impl/StorageEngineServiceImpl.java +++ b/minio-plus-core/src/main/java/org/liuxp/minioplus/core/engine/impl/StorageEngineServiceImpl.java @@ -512,7 +512,10 @@ public class StorageEngineServiceImpl implements StorageEngineService { fileMetadataInfo.setIsFinished(Boolean.TRUE); FileMetadataInfoVo fileMetadataInfoVo = metadataRepository.one(fileMetadataInfo); - if (null == fileMetadataInfoVo) { + if (null == fileMetadataInfoVo + || (null == fileMetadataInfoVo.getId() && null == fileMetadataInfoVo.getFileKey() && null == fileMetadataInfoVo.getFileMd5()) + ) { + // 兼容了空对象的情况,很多用户在实现 one 方法时习惯于返回一个空对象 // 当不存在任何该MD5值的文件元数据时,删除物理文件 minioS3Client.removeObject(metadata.getStorageBucket(), metadata.getStoragePath() + "/" + metadata.getFileMd5()); if (Boolean.TRUE.equals(metadata.getIsPreview())) {