From 301952357ac179cae3aeebea4912c76e06f4d8f8 Mon Sep 17 00:00:00 2001 From: AprilWind <2100166581@qq.com> Date: Sun, 28 Apr 2024 11:08:53 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=E5=90=88=E5=B9=B6?= =?UTF-8?q?=E5=88=86=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/service/impl/SysOssServiceImpl.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssServiceImpl.java index 2af60a2b5..6df7061b4 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssServiceImpl.java @@ -281,6 +281,9 @@ public class SysOssServiceImpl implements ISysOssService, OssService { String uploadId = multipartBo.getUploadId(); Integer partNumber = multipartBo.getPartNumber(); MultipartVo multipartVo = RedisUtils.getCacheObject(GlobalConstants.OSS_MULTIPART + uploadId); + if (ObjectUtil.isNull(multipartVo)) { + throw new ServiceException("该分片任务不存在!"); + } OssClient storage = OssFactory.instance(); String privateUrl = storage.uploadPartFutures(multipartVo.getFilename(), uploadId, partNumber, multipartBo.getMd5Digest(), 60 * 60 * 72); multipartVo.setPrivateUrl(privateUrl); @@ -298,6 +301,9 @@ public class SysOssServiceImpl implements ISysOssService, OssService { public MultipartVo uploadPartList(MultipartBo multipartBo) { String uploadId = multipartBo.getUploadId(); MultipartVo multipartVo = RedisUtils.getCacheObject(GlobalConstants.OSS_MULTIPART + uploadId); + if (ObjectUtil.isNull(multipartVo)) { + throw new ServiceException("该分片任务不存在!"); + } OssClient storage = OssFactory.instance(); List listParts = storage.listParts(multipartVo.getFilename(), uploadId, multipartBo.getMaxParts(), multipartBo.getPartNumberMarker()); multipartVo.setPartUploadList(listParts.stream() @@ -315,7 +321,11 @@ public class SysOssServiceImpl implements ISysOssService, OssService { @Override public SysOssVo completeMultipartUpload(MultipartBo multipartBo) { 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 listParts = multipartBo.getPartUploadList().stream() .map(x -> PartUploadResult.builder() .partNumber(x.getPartNumber()) @@ -325,7 +335,9 @@ public class SysOssServiceImpl implements ISysOssService, OssService { OssClient storage = OssFactory.instance(); 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; } /**