update oss工具优化报错信息

This commit is contained in:
AprilWind 2024-04-15 12:37:47 +08:00
parent 95a97ab06c
commit bd8994f0de

View File

@ -1,5 +1,6 @@
package org.dromara.common.oss.core; package org.dromara.common.oss.core;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.io.IoUtil; import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import org.dromara.common.core.constant.Constants; import org.dromara.common.core.constant.Constants;
@ -326,12 +327,17 @@ public class OssClient {
* @return 包含上传 ID UploadResult 对象 * @return 包含上传 ID UploadResult 对象
*/ */
public UploadResult initiateMultipartUpload(String key) { public UploadResult initiateMultipartUpload(String key) {
try {
String uploadId = client.createMultipartUpload( String uploadId = client.createMultipartUpload(
x -> x.bucket(properties.getBucketName()) x -> x.bucket(properties.getBucketName())
.key(key) .key(key)
.build() .build()
).join().uploadId(); ).join().uploadId();
return UploadResult.builder().url(getUrl() + StringUtils.SLASH + key).filename(key).uploadId(uploadId).build(); return UploadResult.builder().url(getUrl() + StringUtils.SLASH + key).filename(key).uploadId(uploadId).build();
} catch (Exception e) {
// 捕获异常并抛出自定义异常
throw new OssException("创建分片上传任务失败,请检查配置信息:[" + e.getMessage() + "]");
}
} }
/** /**
@ -367,6 +373,7 @@ public class OssClient {
* @return 包含分片上传结果信息的 PartUploadResult 对象列表 * @return 包含分片上传结果信息的 PartUploadResult 对象列表
*/ */
public List<PartUploadResult> listParts(String key, String uploadId, Integer maxParts, Integer partNumberMarker) { public List<PartUploadResult> listParts(String key, String uploadId, Integer maxParts, Integer partNumberMarker) {
try {
List<Part> parts = client.listParts( List<Part> parts = client.listParts(
x -> x.bucket(properties.getBucketName()) x -> x.bucket(properties.getBucketName())
.key(key) .key(key)
@ -380,6 +387,10 @@ public class OssClient {
.eTag(x.eTag()) .eTag(x.eTag())
.build()) .build())
.collect(Collectors.toList()); .collect(Collectors.toList());
} catch (Exception e) {
// 捕获异常并抛出自定义异常
throw new OssException("获取分片列表失败,请检查配置信息:[" + e.getMessage() + "]");
}
} }
/** /**
@ -391,6 +402,9 @@ public class OssClient {
* @return 包含上传结果信息的 UploadResult 对象 * @return 包含上传结果信息的 UploadResult 对象
*/ */
public UploadResult completeMultipartUpload(String key, String uploadId, List<PartUploadResult> partUploadResults) { public UploadResult completeMultipartUpload(String key, String uploadId, List<PartUploadResult> partUploadResults) {
if (CollUtil.isEmpty(partUploadResults)) {
throw new OssException("分片列表不能为空");
}
List<CompletedPart> completedParts = partUploadResults.stream() List<CompletedPart> completedParts = partUploadResults.stream()
.map(x -> CompletedPart.builder() .map(x -> CompletedPart.builder()
.partNumber(x.getPartNumber()) .partNumber(x.getPartNumber())