mirror of
https://gitee.com/dromara/RuoYi-Vue-Plus.git
synced 2026-09-20 18:15:56 +08:00
update 优化合并分段
This commit is contained in:
parent
68d8337db4
commit
301952357a
@ -281,6 +281,9 @@ public class SysOssServiceImpl implements ISysOssService, OssService {
|
|||||||
String uploadId = multipartBo.getUploadId();
|
String uploadId = multipartBo.getUploadId();
|
||||||
Integer partNumber = multipartBo.getPartNumber();
|
Integer partNumber = multipartBo.getPartNumber();
|
||||||
MultipartVo multipartVo = RedisUtils.getCacheObject(GlobalConstants.OSS_MULTIPART + uploadId);
|
MultipartVo multipartVo = RedisUtils.getCacheObject(GlobalConstants.OSS_MULTIPART + uploadId);
|
||||||
|
if (ObjectUtil.isNull(multipartVo)) {
|
||||||
|
throw new ServiceException("该分片任务不存在!");
|
||||||
|
}
|
||||||
OssClient storage = OssFactory.instance();
|
OssClient storage = OssFactory.instance();
|
||||||
String privateUrl = storage.uploadPartFutures(multipartVo.getFilename(), uploadId, partNumber, multipartBo.getMd5Digest(), 60 * 60 * 72);
|
String privateUrl = storage.uploadPartFutures(multipartVo.getFilename(), uploadId, partNumber, multipartBo.getMd5Digest(), 60 * 60 * 72);
|
||||||
multipartVo.setPrivateUrl(privateUrl);
|
multipartVo.setPrivateUrl(privateUrl);
|
||||||
@ -298,6 +301,9 @@ public class SysOssServiceImpl implements ISysOssService, OssService {
|
|||||||
public MultipartVo uploadPartList(MultipartBo multipartBo) {
|
public MultipartVo uploadPartList(MultipartBo multipartBo) {
|
||||||
String uploadId = multipartBo.getUploadId();
|
String uploadId = multipartBo.getUploadId();
|
||||||
MultipartVo multipartVo = RedisUtils.getCacheObject(GlobalConstants.OSS_MULTIPART + uploadId);
|
MultipartVo multipartVo = RedisUtils.getCacheObject(GlobalConstants.OSS_MULTIPART + uploadId);
|
||||||
|
if (ObjectUtil.isNull(multipartVo)) {
|
||||||
|
throw new ServiceException("该分片任务不存在!");
|
||||||
|
}
|
||||||
OssClient storage = OssFactory.instance();
|
OssClient storage = OssFactory.instance();
|
||||||
List<PartUploadResult> listParts = storage.listParts(multipartVo.getFilename(), uploadId, multipartBo.getMaxParts(), multipartBo.getPartNumberMarker());
|
List<PartUploadResult> listParts = storage.listParts(multipartVo.getFilename(), uploadId, multipartBo.getMaxParts(), multipartBo.getPartNumberMarker());
|
||||||
multipartVo.setPartUploadList(listParts.stream()
|
multipartVo.setPartUploadList(listParts.stream()
|
||||||
@ -315,7 +321,11 @@ public class SysOssServiceImpl implements ISysOssService, OssService {
|
|||||||
@Override
|
@Override
|
||||||
public SysOssVo completeMultipartUpload(MultipartBo multipartBo) {
|
public SysOssVo completeMultipartUpload(MultipartBo multipartBo) {
|
||||||
String uploadId = multipartBo.getUploadId();
|
String uploadId = multipartBo.getUploadId();
|
||||||
MultipartVo multipartVo = RedisUtils.getCacheObject(GlobalConstants.OSS_MULTIPART + uploadId);
|
String uploadIdKey = GlobalConstants.OSS_MULTIPART + uploadId;
|
||||||
|
MultipartVo multipartVo = RedisUtils.getCacheObject(uploadIdKey);
|
||||||
|
if (ObjectUtil.isNull(multipartVo)) {
|
||||||
|
throw new ServiceException("该分片任务不存在!");
|
||||||
|
}
|
||||||
List<PartUploadResult> listParts = multipartBo.getPartUploadList().stream()
|
List<PartUploadResult> listParts = multipartBo.getPartUploadList().stream()
|
||||||
.map(x -> PartUploadResult.builder()
|
.map(x -> PartUploadResult.builder()
|
||||||
.partNumber(x.getPartNumber())
|
.partNumber(x.getPartNumber())
|
||||||
@ -325,7 +335,9 @@ public class SysOssServiceImpl implements ISysOssService, OssService {
|
|||||||
OssClient storage = OssFactory.instance();
|
OssClient storage = OssFactory.instance();
|
||||||
UploadResult uploadResult = storage.completeMultipartUpload(multipartVo.getFilename(), uploadId, listParts);
|
UploadResult uploadResult = storage.completeMultipartUpload(multipartVo.getFilename(), uploadId, listParts);
|
||||||
// 保存文件信息
|
// 保存文件信息
|
||||||
return buildResultEntity(multipartVo.getOriginalName(), multipartVo.getSuffix(), storage.getConfigKey(), uploadResult);
|
SysOssVo sysOssVo = buildResultEntity(multipartVo.getOriginalName(), multipartVo.getSuffix(), storage.getConfigKey(), uploadResult);
|
||||||
|
RedisUtils.deleteObject(uploadIdKey);
|
||||||
|
return sysOssVo;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user