mirror of
https://gitee.com/lxp135/minio-plus.git
synced 2025-12-06 17:08:26 +08:00
删除原有图片上传逻辑,使用懒加载策略,在第一次访问预览图时生成。
This commit is contained in:
parent
61b08e1240
commit
3d53e62b38
@ -37,14 +37,6 @@ public interface StorageService {
|
||||
*/
|
||||
CompleteResultVo complete(String fileKey, List<String> partMd5List,String userId);
|
||||
|
||||
/**
|
||||
* 上传图片
|
||||
* @param fileKey 文件KEY
|
||||
* @param file 文件
|
||||
* @return 是否成功
|
||||
*/
|
||||
Boolean uploadImage(String fileKey, byte[] file);
|
||||
|
||||
/**
|
||||
* 取得文件下载地址
|
||||
*
|
||||
|
||||
@ -21,7 +21,7 @@ public enum MinioPlusErrorCode {
|
||||
FILE_SUFFIX_GET_FAILED(1004,"无法获取文件的拓展名"),
|
||||
FILE_BYTES_FAILED(1005,"文件流不能为空"),
|
||||
FILE_UPLOAD_FAILED(1006,"文件上传失败"),
|
||||
FILE_PREVIEW_WRITE_FAILED(1007,"缩略图写入失败"),
|
||||
FILE_PREVIEW_WRITE_FAILED(1007,"缩略图生成失败"),
|
||||
|
||||
/**
|
||||
* MinIO 异常
|
||||
|
||||
@ -39,14 +39,6 @@ public interface StorageEngineService {
|
||||
*/
|
||||
CompleteResultVo complete(String fileKey, List<String> partMd5List,String userId);
|
||||
|
||||
/**
|
||||
* 上传图片
|
||||
* @param fileKey 文件KEY
|
||||
* @param file 文件
|
||||
* @return 是否成功
|
||||
*/
|
||||
Boolean uploadImage(String fileKey, byte[] file);
|
||||
|
||||
/**
|
||||
* 取得文件下载地址
|
||||
*
|
||||
|
||||
@ -282,24 +282,6 @@ public class StorageEngineServiceImpl implements StorageEngineService {
|
||||
return completeResultVo;
|
||||
}
|
||||
|
||||
if (metadata.getStorageBucket().equals(StorageBucketEnums.IMAGE.getCode())) {
|
||||
// 图片时,生成图片的上传链接
|
||||
List<FileCheckResultVo.Part> partList = new ArrayList<>();
|
||||
|
||||
FileCheckResultVo.Part part = new FileCheckResultVo.Part();
|
||||
part.setUploadId(metadata.getFileKey());
|
||||
part.setUrl("/storage/upload/image/" + metadata.getFileKey());
|
||||
part.setStartPosition(0L);
|
||||
part.setEndPosition(metadata.getFileSize());
|
||||
partList.add(part);
|
||||
|
||||
completeResultVo.setIsComplete(false);
|
||||
completeResultVo.setUploadTaskId(metadata.getUploadTaskId());
|
||||
completeResultVo.setPartList(partList);
|
||||
|
||||
return completeResultVo;
|
||||
}
|
||||
|
||||
completeResultVo = this.completeMultipartUpload(metadata, partMd5List);
|
||||
|
||||
if (Boolean.TRUE.equals(completeResultVo.getIsComplete())) {
|
||||
@ -337,40 +319,6 @@ public class StorageEngineServiceImpl implements StorageEngineService {
|
||||
return completeResultVo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean uploadImage(String fileKey, byte[] file) {
|
||||
|
||||
FileMetadataInfoDTO searchDto = new FileMetadataInfoDTO();
|
||||
searchDto.setFileKey(fileKey);
|
||||
FileMetadataInfoVo metadata = metadataRepository.one(searchDto);
|
||||
|
||||
try {
|
||||
|
||||
FileMetadataInfoSaveDTO saveDto = new FileMetadataInfoSaveDTO();
|
||||
saveDto.setStorageBucket(metadata.getStorageBucket());
|
||||
saveDto.setStoragePath(metadata.getStoragePath());
|
||||
saveDto.setFileMd5(metadata.getFileMd5());
|
||||
saveDto.setFileSize(metadata.getFileSize());
|
||||
saveDto.setFileMimeType(metadata.getFileMimeType());
|
||||
saveDto.setIsPreview(metadata.getIsPreview());
|
||||
|
||||
Boolean isCreateFile = createFile(saveDto, file);
|
||||
|
||||
FileMetadataInfoUpdateDTO updateDTO = new FileMetadataInfoUpdateDTO();
|
||||
updateDTO.setId(metadata.getId());
|
||||
updateDTO.setIsFinished(Boolean.TRUE);
|
||||
updateDTO.setUpdateUser(metadata.getUpdateUser());
|
||||
metadataRepository.update(updateDTO);
|
||||
|
||||
return isCreateFile;
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error(MinioPlusErrorCode.FILE_UPLOAD_FAILED.getMessage(), e);
|
||||
throw new MinioPlusException(MinioPlusErrorCode.FILE_UPLOAD_FAILED);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public String download(String fileKey, String userId) {
|
||||
|
||||
@ -453,8 +401,8 @@ public class StorageEngineServiceImpl implements StorageEngineService {
|
||||
} catch (Exception e) {
|
||||
// 打印日志
|
||||
log.error(e.getMessage(), e);
|
||||
// 任何异常,统一返回给前端文件不存在
|
||||
throw new MinioPlusException(MinioPlusErrorCode.FILE_EXIST_FAILED);
|
||||
// 缩略图生成失败
|
||||
throw new MinioPlusException(MinioPlusErrorCode.FILE_PREVIEW_WRITE_FAILED);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
@ -815,19 +763,7 @@ public class StorageEngineServiceImpl implements StorageEngineService {
|
||||
bucketName = StorageBucketEnums.getBucketByFileSuffix(suffix);
|
||||
// 创建桶
|
||||
minioS3Client.makeBucket(bucketName);
|
||||
// 如果是图片并开启了压缩,不需要分片,返回项目上的接口地址
|
||||
if (bucketName.equals(StorageBucketEnums.IMAGE.getCode()) && properties.getThumbnail().isEnable()) {
|
||||
|
||||
FileCheckResultVo.Part part = new FileCheckResultVo.Part();
|
||||
// 图片上传时,直接使用fileKey作为uploadId
|
||||
part.setUploadId(fileKey);
|
||||
part.setUrl("/storage/upload/image/" + fileKey);
|
||||
part.setStartPosition(0L);
|
||||
part.setEndPosition(bo.getFileSize());
|
||||
partList.add(part);
|
||||
|
||||
uploadId = fileKey;
|
||||
} else {
|
||||
// 创建分片请求,获取uploadId
|
||||
uploadId = minioS3Client.createMultipartUpload(bucketName, CommonUtil.getObjectName(bo.getFileMd5()));
|
||||
long start = 0;
|
||||
@ -838,7 +774,6 @@ public class StorageEngineServiceImpl implements StorageEngineService {
|
||||
partList.add(part);
|
||||
}
|
||||
}
|
||||
}
|
||||
CreateUploadUrlRespBO respBO = new CreateUploadUrlRespBO();
|
||||
// 桶名字
|
||||
respBO.setBucketName(bucketName);
|
||||
|
||||
@ -85,11 +85,6 @@ public class StorageServiceImpl implements StorageService {
|
||||
return completeResultVo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean uploadImage(String fileKey, byte[] file) {
|
||||
return storageEngineService.uploadImage(fileKey,file);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String download(String fileKey, String userId) {
|
||||
return storageEngineService.download(fileKey,userId);
|
||||
|
||||
@ -82,30 +82,6 @@ public class StorageController {
|
||||
return Response.success(completeResultVo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 图片上传
|
||||
* @param fileKey 文件KEY
|
||||
* @param request 文件流
|
||||
* @return 是否成功
|
||||
*/
|
||||
@ApiOperation(value = "图片上传")
|
||||
@PutMapping("/upload/image/{fileKey}")
|
||||
@ResponseBody
|
||||
public Response<Boolean> uploadImage(@PathVariable String fileKey, HttpServletRequest request) {
|
||||
Boolean isUpload = false;
|
||||
InputStream inputStream = null;
|
||||
try {
|
||||
inputStream = request.getInputStream();
|
||||
isUpload = storageService.uploadImage(fileKey, IoUtil.readBytes(inputStream));
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}finally {
|
||||
IoUtil.close(inputStream);
|
||||
}
|
||||
|
||||
return Response.success(isUpload);
|
||||
}
|
||||
|
||||
/**
|
||||
* 文件下载
|
||||
* @param fileKey 文件KEY
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user