PartETage类型转换

This commit is contained in:
tianliyong 2023-08-21 10:43:34 +08:00
parent 3f17c4233b
commit d8de71f68d
3 changed files with 24 additions and 23 deletions

View File

@ -1,8 +1,7 @@
package cn.axzo.oss.manager.api;
import cn.axzo.oss.manager.api.dto.PartETag;
import cn.axzo.oss.manager.api.dto.request.MultipartUploadDto;
import cn.axzo.oss.manager.api.dto.response.MultipartUploadResponse;
import com.aliyun.oss.model.PartETag;
import java.io.InputStream;
import java.util.List;

View File

@ -1,16 +1,18 @@
package cn.axzo.oss.manager.impl;
import cn.axzo.oss.common.utils.BeanConvertUtil;
import cn.axzo.oss.integration.s3.AliOssService;
import cn.axzo.oss.manager.api.FileManager;
import cn.axzo.oss.manager.api.dto.PartETag;
import cn.axzo.oss.manager.api.dto.request.MultipartUploadDto;
import cn.axzo.oss.manager.api.dto.response.MultipartUploadResponse;
import com.aliyun.oss.model.PartETag;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
/**
@ -63,12 +65,26 @@ public class FileManagerImpl implements FileManager {
public PartETag multipartUpload(String bucketName, String tgtFileKey, byte[] fileContent, MultipartUploadDto dto) {
InputStream inputStream = new ByteArrayInputStream(fileContent);
return aliOssService.multipartUpload(bucketName, tgtFileKey, dto.getUploadId(), inputStream,
com.aliyun.oss.model.PartETag partETag = aliOssService.multipartUpload(bucketName, tgtFileKey, dto.getUploadId(), inputStream,
dto.getPartNumber(), dto.getPartSize());
return BeanConvertUtil.copyBean(partETag, PartETag.class);
}
@Override
public String multipartUploadComplete(String bucketName, String tgtFileKey, String uploadId, List<PartETag> partETags) {
return aliOssService.multipartUploadComplete(bucketName, tgtFileKey, uploadId, partETags);
List<com.aliyun.oss.model.PartETag> partETagList = convertPartETags(partETags);
return aliOssService.multipartUploadComplete(bucketName, tgtFileKey, uploadId, partETagList);
}
private List<com.aliyun.oss.model.PartETag> convertPartETags(List<PartETag> partETags) {
List<com.aliyun.oss.model.PartETag> partETagList = new ArrayList<>();
if (CollectionUtils.isNotEmpty(partETags)) {
partETags.stream().forEach(partETag -> {
com.aliyun.oss.model.PartETag ossPartETag = new com.aliyun.oss.model.PartETag(partETag.getPartNumber(), partETag.getETag(),
partETag.getPartSize(), partETag.getPartCRC());
partETagList.add(ossPartETag);
});
}
return partETagList;
}
}

View File

@ -20,14 +20,13 @@ import cn.axzo.oss.manager.api.AppChannelBucketManager;
import cn.axzo.oss.manager.api.FileBusinessSceneManager;
import cn.axzo.oss.manager.api.FileManager;
import cn.axzo.oss.manager.api.FileUploadConfigManager;
import cn.axzo.oss.manager.api.dto.PartETag;
import cn.axzo.oss.manager.api.dto.request.*;
import cn.axzo.oss.manager.api.dto.response.*;
import cn.axzo.oss.service.api.FileService;
import cn.hutool.core.collection.CollectionUtil;
import com.aliyun.oss.model.PartETag;
import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
@ -177,7 +176,7 @@ public class FileServiceImpl implements FileService {
dto.getTgtFileKey(), dto.getFileContent(), dto);
MultipartUploadResponse response = MultipartUploadResponse.builder()
.uploadId(dto.getUploadId())
.partETag(BeanConvertUtil.copyBean(partETag, cn.axzo.oss.manager.api.dto.PartETag.class))
.partETag(partETag)
.build();
return response;
}
@ -185,10 +184,9 @@ public class FileServiceImpl implements FileService {
@Override
public FileInformationResponse multipartUploadComplete(MultipartUploadCompleteDto dto) {
FileUploadConfig fileUploadConfig = getFileUploadConfig(dto.getAppCode(), dto.getBizScene());
List<PartETag> partETags = convertPartETags(dto.getPartETags());
// 文件合并并生成 file对象
File ossFile = completeFile(fileUploadConfig, dto.getFileName(), dto.getTgtFileKey(),
dto.getUploadId(), partETags);
dto.getUploadId(), dto.getPartETags());
return setFileInfoResp(ossFile);
}
@ -219,18 +217,6 @@ public class FileServiceImpl implements FileService {
return setFileDownloadResponse(file, fileStream);
}
private List<PartETag> convertPartETags(List<cn.axzo.oss.manager.api.dto.PartETag> partETags) {
List<PartETag> partETagList = new ArrayList<>();
if (CollectionUtils.isNotEmpty(partETags)) {
partETags.stream().forEach(partETag -> {
PartETag ossPartETag = new PartETag(partETag.getPartNumber(), partETag.getETag(),
partETag.getPartSize(), partETag.getPartCRC());
partETagList.add(ossPartETag);
});
}
return partETagList;
}
private FileUploadConfig getFileUploadConfig(String appCode, String bizScene) {
// 检查appCode
checkAppCode(appCode);