mirror of
https://gitee.com/lxp135/minio-plus.git
synced 2025-12-07 01:18:22 +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);
|
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_SUFFIX_GET_FAILED(1004,"无法获取文件的拓展名"),
|
||||||
FILE_BYTES_FAILED(1005,"文件流不能为空"),
|
FILE_BYTES_FAILED(1005,"文件流不能为空"),
|
||||||
FILE_UPLOAD_FAILED(1006,"文件上传失败"),
|
FILE_UPLOAD_FAILED(1006,"文件上传失败"),
|
||||||
FILE_PREVIEW_WRITE_FAILED(1007,"缩略图写入失败"),
|
FILE_PREVIEW_WRITE_FAILED(1007,"缩略图生成失败"),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* MinIO 异常
|
* MinIO 异常
|
||||||
|
|||||||
@ -39,14 +39,6 @@ public interface StorageEngineService {
|
|||||||
*/
|
*/
|
||||||
CompleteResultVo complete(String fileKey, List<String> partMd5List,String userId);
|
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;
|
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);
|
completeResultVo = this.completeMultipartUpload(metadata, partMd5List);
|
||||||
|
|
||||||
if (Boolean.TRUE.equals(completeResultVo.getIsComplete())) {
|
if (Boolean.TRUE.equals(completeResultVo.getIsComplete())) {
|
||||||
@ -337,40 +319,6 @@ public class StorageEngineServiceImpl implements StorageEngineService {
|
|||||||
return completeResultVo;
|
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
|
@Override
|
||||||
public String download(String fileKey, String userId) {
|
public String download(String fileKey, String userId) {
|
||||||
|
|
||||||
@ -453,8 +401,8 @@ public class StorageEngineServiceImpl implements StorageEngineService {
|
|||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
// 打印日志
|
// 打印日志
|
||||||
log.error(e.getMessage(), e);
|
log.error(e.getMessage(), e);
|
||||||
// 任何异常,统一返回给前端文件不存在
|
// 缩略图生成失败
|
||||||
throw new MinioPlusException(MinioPlusErrorCode.FILE_EXIST_FAILED);
|
throw new MinioPlusException(MinioPlusErrorCode.FILE_PREVIEW_WRITE_FAILED);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -815,19 +763,7 @@ public class StorageEngineServiceImpl implements StorageEngineService {
|
|||||||
bucketName = StorageBucketEnums.getBucketByFileSuffix(suffix);
|
bucketName = StorageBucketEnums.getBucketByFileSuffix(suffix);
|
||||||
// 创建桶
|
// 创建桶
|
||||||
minioS3Client.makeBucket(bucketName);
|
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
|
||||||
uploadId = minioS3Client.createMultipartUpload(bucketName, CommonUtil.getObjectName(bo.getFileMd5()));
|
uploadId = minioS3Client.createMultipartUpload(bucketName, CommonUtil.getObjectName(bo.getFileMd5()));
|
||||||
long start = 0;
|
long start = 0;
|
||||||
@ -838,7 +774,6 @@ public class StorageEngineServiceImpl implements StorageEngineService {
|
|||||||
partList.add(part);
|
partList.add(part);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
CreateUploadUrlRespBO respBO = new CreateUploadUrlRespBO();
|
CreateUploadUrlRespBO respBO = new CreateUploadUrlRespBO();
|
||||||
// 桶名字
|
// 桶名字
|
||||||
respBO.setBucketName(bucketName);
|
respBO.setBucketName(bucketName);
|
||||||
|
|||||||
@ -85,11 +85,6 @@ public class StorageServiceImpl implements StorageService {
|
|||||||
return completeResultVo;
|
return completeResultVo;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public Boolean uploadImage(String fileKey, byte[] file) {
|
|
||||||
return storageEngineService.uploadImage(fileKey,file);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String download(String fileKey, String userId) {
|
public String download(String fileKey, String userId) {
|
||||||
return storageEngineService.download(fileKey,userId);
|
return storageEngineService.download(fileKey,userId);
|
||||||
|
|||||||
@ -82,30 +82,6 @@ public class StorageController {
|
|||||||
return Response.success(completeResultVo);
|
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
|
* @param fileKey 文件KEY
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user