feat:(REQ-3540) 文件克隆-加上bizScene,不传目标桶与key,则按照appCode与bizScene的为准
This commit is contained in:
parent
54d8ffb985
commit
6a5e42c653
@ -35,6 +35,7 @@ import cn.axzo.oss.http.model.file.FileRenameRequest;
|
|||||||
import cn.axzo.oss.http.model.file.FileRenameResponse;
|
import cn.axzo.oss.http.model.file.FileRenameResponse;
|
||||||
import cn.axzo.oss.http.model.file.UpdateFileInfoRequest;
|
import cn.axzo.oss.http.model.file.UpdateFileInfoRequest;
|
||||||
import cn.axzo.oss.http.model.file.UpdateFileInfoResponse;
|
import cn.axzo.oss.http.model.file.UpdateFileInfoResponse;
|
||||||
|
import cn.axzo.oss.manager.api.dto.request.AppInfoDto;
|
||||||
import cn.axzo.oss.manager.api.dto.request.FileCopyObjectDto;
|
import cn.axzo.oss.manager.api.dto.request.FileCopyObjectDto;
|
||||||
import cn.axzo.oss.manager.api.dto.request.FindFileKeyDto;
|
import cn.axzo.oss.manager.api.dto.request.FindFileKeyDto;
|
||||||
import cn.axzo.oss.manager.api.dto.request.FindFileUrlDto;
|
import cn.axzo.oss.manager.api.dto.request.FindFileUrlDto;
|
||||||
@ -244,7 +245,7 @@ public class ServerFileController implements ServerFileServiceApi {
|
|||||||
public CommonResponse<ServerFileBatchCopyObjectResponse> batchCopyObject(@Valid @RequestBody ServerFileBatchCopyObjectRequest request) {
|
public CommonResponse<ServerFileBatchCopyObjectResponse> batchCopyObject(@Valid @RequestBody ServerFileBatchCopyObjectRequest request) {
|
||||||
AssertUtil.isFalse(Objects.isNull(request) || CollectionUtils.isEmpty(request.getCopyObjects()), "入参为空");
|
AssertUtil.isFalse(Objects.isNull(request) || CollectionUtils.isEmpty(request.getCopyObjects()), "入参为空");
|
||||||
List<FileCopyObjectDto> fileCopyObjectDtos = BeanUtil.copyToList(request.getCopyObjects(), FileCopyObjectDto.class);
|
List<FileCopyObjectDto> fileCopyObjectDtos = BeanUtil.copyToList(request.getCopyObjects(), FileCopyObjectDto.class);
|
||||||
List<FileCopyObjectResponse> fileCopyObjectResponses = fileService.batchCopyObject(fileCopyObjectDtos, request.getAppCode());
|
List<FileCopyObjectResponse> fileCopyObjectResponses = fileService.batchCopyObject(fileCopyObjectDtos, AppInfoDto.builder().appCode(request.getAppCode()).bizScene(request.getBizScene()).build());
|
||||||
return CommonResponse.success(ServerFileBatchCopyObjectResponse.builder().responses(BeanUtil.copyToList(fileCopyObjectResponses, ServerFileBatchCopyObjectResponse.ServerFileCopyObjectResponse.class)).build());
|
return CommonResponse.success(ServerFileBatchCopyObjectResponse.builder().responses(BeanUtil.copyToList(fileCopyObjectResponses, ServerFileBatchCopyObjectResponse.ServerFileCopyObjectResponse.class)).build());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package cn.axzo.oss.dal.repository;
|
package cn.axzo.oss.dal.repository;
|
||||||
|
|
||||||
import cn.axzo.oss.dal.entity.FileBusinessScene;
|
import cn.axzo.oss.dal.entity.FileBusinessScene;
|
||||||
|
import cn.axzo.oss.dal.vo.FileBusinessSceneVo;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -30,4 +31,6 @@ public interface FileBusinessSceneDao extends IService<FileBusinessScene> {
|
|||||||
* 根据bucketNo与场景,获取批量FileBusinessScene对象
|
* 根据bucketNo与场景,获取批量FileBusinessScene对象
|
||||||
*/
|
*/
|
||||||
List<FileBusinessScene> queryByBucketNoAndScene(Set<String> bucketNoList, String bizScen);
|
List<FileBusinessScene> queryByBucketNoAndScene(Set<String> bucketNoList, String bizScen);
|
||||||
|
|
||||||
|
List<FileBusinessScene> findByCondition(FileBusinessSceneVo vo);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import cn.axzo.oss.common.enums.IsDeleteEnum;
|
|||||||
import cn.axzo.oss.dal.entity.FileBusinessScene;
|
import cn.axzo.oss.dal.entity.FileBusinessScene;
|
||||||
import cn.axzo.oss.dal.mapper.FileBusinessSceneMapper;
|
import cn.axzo.oss.dal.mapper.FileBusinessSceneMapper;
|
||||||
import cn.axzo.oss.dal.repository.FileBusinessSceneDao;
|
import cn.axzo.oss.dal.repository.FileBusinessSceneDao;
|
||||||
|
import cn.axzo.oss.dal.vo.FileBusinessSceneVo;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
@ -50,4 +51,12 @@ public class FileBusinessSceneDaoImpl extends
|
|||||||
.eq(StringUtils.isNotBlank(bizScene), FileBusinessScene::getBusinessScene, StringUtils.isNotBlank(bizScene) ? bizScene : StringUtils.EMPTY)
|
.eq(StringUtils.isNotBlank(bizScene), FileBusinessScene::getBusinessScene, StringUtils.isNotBlank(bizScene) ? bizScene : StringUtils.EMPTY)
|
||||||
.eq(FileBusinessScene::getIsDelete, IsDeleteEnum.NO.getCode()).list();
|
.eq(FileBusinessScene::getIsDelete, IsDeleteEnum.NO.getCode()).list();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<FileBusinessScene> findByCondition(FileBusinessSceneVo vo) {
|
||||||
|
return lambdaQuery().eq(FileBusinessScene::getAppCode, vo.getAppCode())
|
||||||
|
.eq(FileBusinessScene::getBusinessScene,vo.getBusinessScene())
|
||||||
|
.eq(FileBusinessScene::getIsDelete, IsDeleteEnum.NO.getCode()).list();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,20 @@
|
|||||||
|
package cn.axzo.oss.dal.vo;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xudawei@axzo.cn
|
||||||
|
* @date 2025/3/20
|
||||||
|
* @description FileBusinessSceneVo
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class FileBusinessSceneVo {
|
||||||
|
private String appCode;
|
||||||
|
private String businessScene;
|
||||||
|
}
|
||||||
@ -24,6 +24,9 @@ public class ServerFileBatchCopyObjectRequest {
|
|||||||
@NotBlank(message = "appCode must not be null")
|
@NotBlank(message = "appCode must not be null")
|
||||||
private String appCode;
|
private String appCode;
|
||||||
|
|
||||||
|
@NotBlank(message = "bizScene must not be null")
|
||||||
|
private String bizScene;
|
||||||
|
|
||||||
@NotEmpty(message = "集合对象不能为空")
|
@NotEmpty(message = "集合对象不能为空")
|
||||||
private Set<ServerFileCopyObjectRequest> copyObjects;
|
private Set<ServerFileCopyObjectRequest> copyObjects;
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package cn.axzo.oss.manager.api;
|
package cn.axzo.oss.manager.api;
|
||||||
|
|
||||||
import cn.axzo.oss.dal.entity.FileBusinessScene;
|
import cn.axzo.oss.dal.entity.FileBusinessScene;
|
||||||
|
import cn.axzo.oss.dal.vo.FileBusinessSceneVo;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
@ -25,4 +26,6 @@ public interface FileBusinessSceneManager {
|
|||||||
* 指定appcode文件业务场景
|
* 指定appcode文件业务场景
|
||||||
*/
|
*/
|
||||||
List<FileBusinessScene> queryByBucketNoAndScene(Set<String> bucketNoList, String bizScene);
|
List<FileBusinessScene> queryByBucketNoAndScene(Set<String> bucketNoList, String bizScene);
|
||||||
|
|
||||||
|
List<FileBusinessScene> findByCondition(FileBusinessSceneVo vo);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,28 @@
|
|||||||
|
package cn.axzo.oss.manager.api.dto.request;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xudawei@axzo.cn
|
||||||
|
* @date 2025/3/20
|
||||||
|
* @description app
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class AppInfoDto {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* appCode
|
||||||
|
*/
|
||||||
|
private String appCode;
|
||||||
|
/**
|
||||||
|
* bizScene
|
||||||
|
*/
|
||||||
|
private String bizScene;
|
||||||
|
|
||||||
|
}
|
||||||
@ -2,6 +2,7 @@ package cn.axzo.oss.manager.api.dto.request;
|
|||||||
|
|
||||||
import cn.axzo.oss.common.utils.Utility;
|
import cn.axzo.oss.common.utils.Utility;
|
||||||
import cn.axzo.oss.dal.entity.File;
|
import cn.axzo.oss.dal.entity.File;
|
||||||
|
import cn.axzo.oss.dal.entity.FileBusinessScene;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@ -64,11 +65,11 @@ public class CopyObjectCloudDto {
|
|||||||
private File file;
|
private File file;
|
||||||
private String fileUuid;
|
private String fileUuid;
|
||||||
|
|
||||||
public static CopyObjectCloudDto create(FileCopyObjectDto fileCopyObjectRequest, File file) {
|
public static CopyObjectCloudDto create(FileCopyObjectDto fileCopyObjectRequest, File file, FileBusinessScene fileBusinessScene) {
|
||||||
// 入参中有通道,则优先取入参;否则取源通道
|
// 入参中有通道,则优先取入参;否则取源通道
|
||||||
String targetChannelCode = StringUtils.isBlank(fileCopyObjectRequest.getTargetChannelCode()) ? file.getChannelCode() : fileCopyObjectRequest.getTargetChannelCode();
|
String targetChannelCode = StringUtils.isBlank(fileCopyObjectRequest.getTargetChannelCode()) ? fileBusinessScene.getChannelCode() : fileCopyObjectRequest.getTargetChannelCode();
|
||||||
String targetBucketName = StringUtils.isBlank(fileCopyObjectRequest.getTargetBucketName()) ? file.getBucketName() : fileCopyObjectRequest.getTargetBucketName();
|
String targetBucketName = StringUtils.isBlank(fileCopyObjectRequest.getTargetBucketName()) ? fileBusinessScene.getBucketName() : fileCopyObjectRequest.getTargetBucketName();
|
||||||
String targetBucketDict = StringUtils.isBlank(fileCopyObjectRequest.getTargetDict()) ? file.getDirectory() : fileCopyObjectRequest.getTargetDict();
|
String targetBucketDict = StringUtils.isBlank(fileCopyObjectRequest.getTargetDict()) ? fileBusinessScene.getDirectory() : fileCopyObjectRequest.getTargetDict();
|
||||||
String fileName = StringUtils.isBlank(fileCopyObjectRequest.getTargetFileName()) ? file.getFileName() : fileCopyObjectRequest.getTargetFileName();
|
String fileName = StringUtils.isBlank(fileCopyObjectRequest.getTargetFileName()) ? file.getFileName() : fileCopyObjectRequest.getTargetFileName();
|
||||||
|
|
||||||
String uuid = Utility.getUUID();
|
String uuid = Utility.getUUID();
|
||||||
|
|||||||
@ -0,0 +1,30 @@
|
|||||||
|
package cn.axzo.oss.manager.api.dto.request;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xudawei@axzo.cn
|
||||||
|
* @date 2025/3/20
|
||||||
|
* @description FileBusinessSceneDto
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class FileBusinessSceneDto {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 应用编码
|
||||||
|
*/
|
||||||
|
private String appCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 业务场景
|
||||||
|
*/
|
||||||
|
private String businessScene;
|
||||||
|
|
||||||
|
}
|
||||||
@ -4,10 +4,10 @@ import cn.axzo.oss.common.enums.CodeEnum;
|
|||||||
import cn.axzo.oss.common.exception.BizException;
|
import cn.axzo.oss.common.exception.BizException;
|
||||||
import cn.axzo.oss.dal.entity.FileBusinessScene;
|
import cn.axzo.oss.dal.entity.FileBusinessScene;
|
||||||
import cn.axzo.oss.dal.repository.FileBusinessSceneDao;
|
import cn.axzo.oss.dal.repository.FileBusinessSceneDao;
|
||||||
|
import cn.axzo.oss.dal.vo.FileBusinessSceneVo;
|
||||||
import cn.axzo.oss.manager.api.FileBusinessSceneManager;
|
import cn.axzo.oss.manager.api.FileBusinessSceneManager;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
@ -53,4 +53,9 @@ public class FileBusinessSceneManagerImpl implements FileBusinessSceneManager {
|
|||||||
return fileBusinessSceneDao
|
return fileBusinessSceneDao
|
||||||
.queryByBucketNoAndScene(bucketNoList, bizScene);
|
.queryByBucketNoAndScene(bucketNoList, bizScene);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<FileBusinessScene> findByCondition(FileBusinessSceneVo vo) {
|
||||||
|
return fileBusinessSceneDao.findByCondition(vo);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,6 +3,7 @@ package cn.axzo.oss.service.api;
|
|||||||
import cn.axzo.framework.auth.domain.ContextInfo;
|
import cn.axzo.framework.auth.domain.ContextInfo;
|
||||||
import cn.axzo.oss.dal.entity.AppChannelBucket;
|
import cn.axzo.oss.dal.entity.AppChannelBucket;
|
||||||
import cn.axzo.oss.dal.entity.FileUploadConfig;
|
import cn.axzo.oss.dal.entity.FileUploadConfig;
|
||||||
|
import cn.axzo.oss.manager.api.dto.request.AppInfoDto;
|
||||||
import cn.axzo.oss.manager.api.dto.request.DeleteFileDto;
|
import cn.axzo.oss.manager.api.dto.request.DeleteFileDto;
|
||||||
import cn.axzo.oss.manager.api.dto.request.FileCopyObjectDto;
|
import cn.axzo.oss.manager.api.dto.request.FileCopyObjectDto;
|
||||||
import cn.axzo.oss.manager.api.dto.request.FindFileKeyDto;
|
import cn.axzo.oss.manager.api.dto.request.FindFileKeyDto;
|
||||||
@ -127,7 +128,7 @@ public interface FileService {
|
|||||||
* 1 不同通道,则通过url进行复制
|
* 1 不同通道,则通过url进行复制
|
||||||
* 2 相同通道,则直接调用复制方法
|
* 2 相同通道,则直接调用复制方法
|
||||||
*/
|
*/
|
||||||
List<FileCopyObjectResponse> batchCopyObject(List<FileCopyObjectDto> dtoList, String appCode);
|
List<FileCopyObjectResponse> batchCopyObject(List<FileCopyObjectDto> dtoList, AppInfoDto appInfoDto);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新文件信息
|
* 更新文件信息
|
||||||
|
|||||||
@ -26,12 +26,14 @@ import cn.axzo.oss.dal.entity.FileBusinessScene;
|
|||||||
import cn.axzo.oss.dal.entity.FileUploadConfig;
|
import cn.axzo.oss.dal.entity.FileUploadConfig;
|
||||||
import cn.axzo.oss.dal.repository.FileAppDao;
|
import cn.axzo.oss.dal.repository.FileAppDao;
|
||||||
import cn.axzo.oss.dal.repository.FileDao;
|
import cn.axzo.oss.dal.repository.FileDao;
|
||||||
|
import cn.axzo.oss.dal.vo.FileBusinessSceneVo;
|
||||||
import cn.axzo.oss.integration.s3.config.HuaWeiCloudObsConfig;
|
import cn.axzo.oss.integration.s3.config.HuaWeiCloudObsConfig;
|
||||||
import cn.axzo.oss.manager.api.AppChannelBucketManager;
|
import cn.axzo.oss.manager.api.AppChannelBucketManager;
|
||||||
import cn.axzo.oss.manager.api.FileBusinessSceneManager;
|
import cn.axzo.oss.manager.api.FileBusinessSceneManager;
|
||||||
import cn.axzo.oss.manager.api.FileManager;
|
import cn.axzo.oss.manager.api.FileManager;
|
||||||
import cn.axzo.oss.manager.api.FileUploadConfigManager;
|
import cn.axzo.oss.manager.api.FileUploadConfigManager;
|
||||||
import cn.axzo.oss.manager.api.dto.PartETag;
|
import cn.axzo.oss.manager.api.dto.PartETag;
|
||||||
|
import cn.axzo.oss.manager.api.dto.request.AppInfoDto;
|
||||||
import cn.axzo.oss.manager.api.dto.request.CopyObjectCloudDto;
|
import cn.axzo.oss.manager.api.dto.request.CopyObjectCloudDto;
|
||||||
import cn.axzo.oss.manager.api.dto.request.DeleteFileDto;
|
import cn.axzo.oss.manager.api.dto.request.DeleteFileDto;
|
||||||
import cn.axzo.oss.manager.api.dto.request.FileCopyObjectDto;
|
import cn.axzo.oss.manager.api.dto.request.FileCopyObjectDto;
|
||||||
@ -1268,12 +1270,12 @@ public class FileServiceImpl implements FileService {
|
|||||||
* 1 不同通道,则通过url进行复制
|
* 1 不同通道,则通过url进行复制
|
||||||
* 2 相同通道,则直接调用复制方法
|
* 2 相同通道,则直接调用复制方法
|
||||||
*/
|
*/
|
||||||
public List<FileCopyObjectResponse> batchCopyObject(List<FileCopyObjectDto> dtoList, String appCode) {
|
public List<FileCopyObjectResponse> batchCopyObject(List<FileCopyObjectDto> dtoList, AppInfoDto appInfoDto) {
|
||||||
AssertUtil.isFalse(CollectionUtils.isEmpty(dtoList), "请求入参为空");
|
AssertUtil.isFalse(CollectionUtils.isEmpty(dtoList), "请求入参为空");
|
||||||
//校验appCode
|
//校验appCode
|
||||||
this.checkAppCode(appCode);
|
this.checkAppCode(appInfoDto.getAppCode());
|
||||||
//通过fileKeys复制文件
|
//通过fileKeys复制文件
|
||||||
List<CopyObjectCloudDto> cloudDtos = this.batchCopyObjectByFileKeys(dtoList);
|
List<CopyObjectCloudDto> cloudDtos = this.batchCopyObjectByFileKeys(dtoList, appInfoDto);
|
||||||
//保存文件表
|
//保存文件表
|
||||||
return this.saveFiles(cloudDtos);
|
return this.saveFiles(cloudDtos);
|
||||||
}
|
}
|
||||||
@ -1324,7 +1326,7 @@ public class FileServiceImpl implements FileService {
|
|||||||
/**
|
/**
|
||||||
* 通过fileKeys复制文件
|
* 通过fileKeys复制文件
|
||||||
*/
|
*/
|
||||||
private List<CopyObjectCloudDto> batchCopyObjectByFileKeys(List<FileCopyObjectDto> dtoList) {
|
private List<CopyObjectCloudDto> batchCopyObjectByFileKeys(List<FileCopyObjectDto> dtoList, AppInfoDto appInfoDto) {
|
||||||
List<String> fileKeys = dtoList.stream()
|
List<String> fileKeys = dtoList.stream()
|
||||||
.filter(item -> StringUtils.isNotBlank(item.getSrcFileKey()))
|
.filter(item -> StringUtils.isNotBlank(item.getSrcFileKey()))
|
||||||
.map(FileCopyObjectDto::getSrcFileKey).collect(Collectors.toList());
|
.map(FileCopyObjectDto::getSrcFileKey).collect(Collectors.toList());
|
||||||
@ -1339,7 +1341,7 @@ public class FileServiceImpl implements FileService {
|
|||||||
return Lists.newArrayList();
|
return Lists.newArrayList();
|
||||||
}
|
}
|
||||||
//通过文件表,完成文件对象复制
|
//通过文件表,完成文件对象复制
|
||||||
return this.doBatchCopyObjectByFiles(reqFileKeyMap, fileList);
|
return this.doBatchCopyObjectByFiles(reqFileKeyMap, fileList, appInfoDto);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1347,8 +1349,9 @@ public class FileServiceImpl implements FileService {
|
|||||||
* 注意,此方法是根据业务文件复制
|
* 注意,此方法是根据业务文件复制
|
||||||
* 底层通用方法fileManager.copyObjects(dto);
|
* 底层通用方法fileManager.copyObjects(dto);
|
||||||
*/
|
*/
|
||||||
private List<CopyObjectCloudDto> doBatchCopyObjectByFiles(Map<String, FileCopyObjectDto> reqFileKeyMap, List<File> fileList) {
|
private List<CopyObjectCloudDto> doBatchCopyObjectByFiles(Map<String, FileCopyObjectDto> reqFileKeyMap, List<File> fileList, AppInfoDto appInfoDto) {
|
||||||
List<CopyObjectCloudDto> returnList = Lists.newArrayList();
|
List<CopyObjectCloudDto> returnList = Lists.newArrayList();
|
||||||
|
FileBusinessScene fileBusinessScene = this.fetchBizSceneByAppCodeAndBizScene(appInfoDto);
|
||||||
for (File file : fileList) {
|
for (File file : fileList) {
|
||||||
if (Objects.isNull(reqFileKeyMap.get(file.getFileUuid()))) {
|
if (Objects.isNull(reqFileKeyMap.get(file.getFileUuid()))) {
|
||||||
continue;
|
continue;
|
||||||
@ -1357,7 +1360,7 @@ public class FileServiceImpl implements FileService {
|
|||||||
if (Objects.isNull(fileCopyObjectRequest)) {
|
if (Objects.isNull(fileCopyObjectRequest)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
CopyObjectCloudDto dto = CopyObjectCloudDto.create(fileCopyObjectRequest, file);
|
CopyObjectCloudDto dto = CopyObjectCloudDto.create(fileCopyObjectRequest, file, fileBusinessScene);
|
||||||
|
|
||||||
this.fileManager.copyObjects(dto);
|
this.fileManager.copyObjects(dto);
|
||||||
returnList.add(dto);
|
returnList.add(dto);
|
||||||
@ -1365,6 +1368,16 @@ public class FileServiceImpl implements FileService {
|
|||||||
return returnList;
|
return returnList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private FileBusinessScene fetchBizSceneByAppCodeAndBizScene(AppInfoDto appInfoDto) {
|
||||||
|
List<FileBusinessScene> list = this.fileBusinessSceneManager.findByCondition(FileBusinessSceneVo.builder()
|
||||||
|
.appCode(appInfoDto.getAppCode())
|
||||||
|
.businessScene(appInfoDto.getBizScene())
|
||||||
|
.build());
|
||||||
|
AssertUtil.notEmpty(list, "文件业务场景未配置");
|
||||||
|
AssertUtil.isFalse(list.size() > 1, "文件业务场景匹配多个");
|
||||||
|
return list.get(0);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新文件信息
|
* 更新文件信息
|
||||||
*/
|
*/
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user