diff --git a/oss-client/src/main/java/cn/axzo/oss/client/controller/ServerFileController.java b/oss-client/src/main/java/cn/axzo/oss/client/controller/ServerFileController.java index bc4a34e..f4fbe75 100644 --- a/oss-client/src/main/java/cn/axzo/oss/client/controller/ServerFileController.java +++ b/oss-client/src/main/java/cn/axzo/oss/client/controller/ServerFileController.java @@ -233,7 +233,7 @@ public class ServerFileController implements ServerFileServiceApi { /** * 复制文件 */ - public CommonResponse batchCopyObject(ServerFileBatchCopyObjectRequest request) { + public CommonResponse batchCopyObject(@Valid @RequestBody ServerFileBatchCopyObjectRequest request) { AssertUtil.isFalse(Objects.isNull(request) || CollectionUtils.isEmpty(request.getCopyObjects()), "入参为空"); List fileCopyObjectDtos = BeanUtil.copyToList(request.getCopyObjects(), FileCopyObjectDto.class); List fileCopyObjectResponses = fileService.batchCopyObject(fileCopyObjectDtos, request.getAppCode()); diff --git a/oss-http-api/src/main/java/cn/axzo/oss/http/api/ServerFileServiceApi.java b/oss-http-api/src/main/java/cn/axzo/oss/http/api/ServerFileServiceApi.java index 09ac9b4..3694a53 100644 --- a/oss-http-api/src/main/java/cn/axzo/oss/http/api/ServerFileServiceApi.java +++ b/oss-http-api/src/main/java/cn/axzo/oss/http/api/ServerFileServiceApi.java @@ -141,6 +141,6 @@ public interface ServerFileServiceApi { * 复制文件 */ @RequestMapping(value = "/api/server/batchCopyObject", method = RequestMethod.POST) - CommonResponse batchCopyObject(ServerFileBatchCopyObjectRequest request); + CommonResponse batchCopyObject(@Valid @RequestBody ServerFileBatchCopyObjectRequest request); } diff --git a/oss-http-api/src/main/java/cn/axzo/oss/http/model/copyobject/ServerFileBatchCopyObjectRequest.java b/oss-http-api/src/main/java/cn/axzo/oss/http/model/copyobject/ServerFileBatchCopyObjectRequest.java index 61b6dce..d41fac4 100644 --- a/oss-http-api/src/main/java/cn/axzo/oss/http/model/copyobject/ServerFileBatchCopyObjectRequest.java +++ b/oss-http-api/src/main/java/cn/axzo/oss/http/model/copyobject/ServerFileBatchCopyObjectRequest.java @@ -67,7 +67,7 @@ public class ServerFileBatchCopyObjectRequest { */ private String srcBucketName; /** - * 桶文件目录 + * 桶文件路径(目录+文件) */ private String srcBucketKey; /** diff --git a/oss-http-api/src/main/java/cn/axzo/oss/http/model/copyobject/ServerFileBatchCopyObjectResponse.java b/oss-http-api/src/main/java/cn/axzo/oss/http/model/copyobject/ServerFileBatchCopyObjectResponse.java index e86ff71..e7dc4dc 100644 --- a/oss-http-api/src/main/java/cn/axzo/oss/http/model/copyobject/ServerFileBatchCopyObjectResponse.java +++ b/oss-http-api/src/main/java/cn/axzo/oss/http/model/copyobject/ServerFileBatchCopyObjectResponse.java @@ -27,26 +27,39 @@ public class ServerFileBatchCopyObjectResponse { @Builder public static class ServerFileCopyObjectResponse { /** - * 与入参中的id一致 + * 唯一标识,没有唯一标识,可以与fileKey一致 */ - private String id; + private String fileUuid; /** - * 原文件的fileKey + * 目标桶 + * 如果目标桶为空,则默认取源桶 */ - private String oldFileKey; + private String targetFileKey; /** - * 原文件的url + * 目标通道 + * 如果目标通道为空,则默认源通道 */ - private String oldFileUrl; + private String targetChannelCode; /** - * 新文件的filekey + * 桶名称 */ - private String newFileKey; + private String srcBucketName; + /** + * 桶文件目录 + */ + private String srcBucketDict; + /** + * 文件对象key + */ + private String srcFileKey; - private String newUrl; + /** + * 文件名称 + */ + private String srcFileName; } diff --git a/oss-manager-api/src/main/java/cn/axzo/oss/manager/api/dto/request/CopyObjectCloudDto.java b/oss-manager-api/src/main/java/cn/axzo/oss/manager/api/dto/request/CopyObjectCloudDto.java index f0cdd21..90375ca 100644 --- a/oss-manager-api/src/main/java/cn/axzo/oss/manager/api/dto/request/CopyObjectCloudDto.java +++ b/oss-manager-api/src/main/java/cn/axzo/oss/manager/api/dto/request/CopyObjectCloudDto.java @@ -42,6 +42,12 @@ public class CopyObjectCloudDto { * 目的桶名称 */ private String targetBucketName; + + /** + * 目的桶目录 + */ + private String targetBucketDict; + /** * 目的桶key(三方的桶上的目录+文件名称) */ @@ -53,7 +59,7 @@ public class CopyObjectCloudDto { private String targetKey; private String targetChannelCode; - private String fileName; + private String targetFileName; private File file; private String fileUuid; @@ -72,10 +78,11 @@ public class CopyObjectCloudDto { .srcBucketKey(Utility.generateFileKey(file.getDirectory(), file.getFileUuid(), file.getFileFormat())) .srcChannelCode(file.getChannelCode()) .targetBucketName(targetBucketName) + .targetBucketDict(targetBucketDict) .targetBucketKey(Utility.generateFileKey(targetBucketDict, uuid, file.getFileFormat())) .targetKey(uuid) .targetChannelCode(targetChannelCode) - .fileName(fileName) + .targetFileName(fileName) .file(file) .fileUuid(fileCopyObjectRequest.getFileUuid()) .build(); diff --git a/oss-manager-api/src/main/java/cn/axzo/oss/manager/api/dto/request/SignUrlDownloadDto.java b/oss-manager-api/src/main/java/cn/axzo/oss/manager/api/dto/request/SignUrlDownloadDto.java index 078fc8e..007222a 100644 --- a/oss-manager-api/src/main/java/cn/axzo/oss/manager/api/dto/request/SignUrlDownloadDto.java +++ b/oss-manager-api/src/main/java/cn/axzo/oss/manager/api/dto/request/SignUrlDownloadDto.java @@ -5,9 +5,7 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotEmpty; -import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import java.util.List; diff --git a/oss-manager-api/src/main/java/cn/axzo/oss/manager/api/dto/response/FileCopyObjectResponse.java b/oss-manager-api/src/main/java/cn/axzo/oss/manager/api/dto/response/FileCopyObjectResponse.java index 1066216..76773b8 100644 --- a/oss-manager-api/src/main/java/cn/axzo/oss/manager/api/dto/response/FileCopyObjectResponse.java +++ b/oss-manager-api/src/main/java/cn/axzo/oss/manager/api/dto/response/FileCopyObjectResponse.java @@ -40,20 +40,20 @@ public class FileCopyObjectResponse { /** * 桶名称 */ - private String bucketName; + private String srcBucketName; /** * 桶文件目录 */ - private String bucketDict; + private String srcBucketDict; /** * 文件对象key */ - private String fileKey; + private String srcFileKey; /** * 文件名称 */ - private String fileName; + private String srcFileName; public static FileCopyObjectResponse create(CopyObjectCloudDto item) { return FileCopyObjectResponse.builder() @@ -61,10 +61,10 @@ public class FileCopyObjectResponse { .targetFileKey(item.getTargetKey()) .targetChannelCode(item.getTargetChannelCode()) // .targetDownloadUrl(this.fileManager.fetchDownloadUrl(item.getFile().getb)) - .bucketName(item.getFile().getBucketName()) - .bucketDict(item.getFile().getDirectory()) - .fileKey(item.getFile().getFileUuid()) - .fileName(item.getFileName()) + .srcBucketName(item.getFile().getBucketName()) + .srcBucketDict(item.getFile().getDirectory()) + .srcFileKey(item.getFile().getFileUuid()) + .srcFileName(item.getTargetFileName()) .build(); } diff --git a/oss-manager/src/main/java/cn/axzo/oss/manager/impl/FileManagerImpl.java b/oss-manager/src/main/java/cn/axzo/oss/manager/impl/FileManagerImpl.java index 6b69777..692e647 100644 --- a/oss-manager/src/main/java/cn/axzo/oss/manager/impl/FileManagerImpl.java +++ b/oss-manager/src/main/java/cn/axzo/oss/manager/impl/FileManagerImpl.java @@ -357,7 +357,7 @@ public class FileManagerImpl implements FileManager { return this.copyObjectWhenSameChannel(dto); } // 不同的通道,通过url上传至云(通过url复制至云) - String url = this.uploadByUrl(dto.getTargetBucketName(), dto.getTargetKey(), dto.getFileName(), dto.getSrcUrl(), dto.getTargetChannelCode()); + String url = this.uploadByUrl(dto.getTargetBucketName(), dto.getTargetKey(), dto.getTargetFileName(), dto.getSrcUrl(), dto.getTargetChannelCode()); return StringUtils.isBlank(url) ? false : true; } @@ -368,7 +368,7 @@ public class FileManagerImpl implements FileManager { ChannelTypeEnum typeEnum = ChannelTypeEnum.getChannelTypeByChannelCode(dto.getSrcChannelCode()); switch (typeEnum) { case OBS:// 华为云 - CopyObjectResult huaweiResult = huaWeiCloudService.copyObject(dto.getSrcBucketName(), dto.getSrcBucketKey(), dto.getTargetBucketName(), dto.getTargetKey()); + CopyObjectResult huaweiResult = huaWeiCloudService.copyObject(dto.getSrcBucketName(), dto.getSrcBucketKey(), dto.getTargetBucketName(), dto.getTargetBucketKey()); return Objects.isNull(huaweiResult) ? false : true; case OSS:// 阿里云 com.aliyun.oss.model.CopyObjectResult aliResult = aliOssService.copyObject(dto.getSrcBucketName(), dto.getSrcBucketKey(), dto.getTargetBucketName(), dto.getTargetKey()); diff --git a/oss-service/src/main/java/cn/axzo/oss/service/impl/FileServiceImpl.java b/oss-service/src/main/java/cn/axzo/oss/service/impl/FileServiceImpl.java index 16c454a..81d9dd0 100644 --- a/oss-service/src/main/java/cn/axzo/oss/service/impl/FileServiceImpl.java +++ b/oss-service/src/main/java/cn/axzo/oss/service/impl/FileServiceImpl.java @@ -1306,7 +1306,7 @@ public class FileServiceImpl implements FileService { ossFile.setAppCode(item.getFile().getAppCode()); ossFile.setChannelCode(item.getTargetChannelCode()); ossFile.setBucketName(item.getTargetBucketName()); - ossFile.setDirectory(item.getTargetBucketKey()); + ossFile.setDirectory(item.getTargetBucketDict()); ossFile.setStorageUnit(item.getFile().getStorageUnit()); ossFile.setStorageSize(item.getFile().getStorageSize()); ossFile.setFileFormat(item.getFile().getFileFormat()); @@ -1314,7 +1314,7 @@ public class FileServiceImpl implements FileService { ossFile.setFileUrl(this.fileManager.fetchDownloadUrl(item.getTargetBucketName(), Utility.generateFileKey(item.getTargetBucketKey(), item.getTargetKey(), item.getFile().getFileFormat()), item.getTargetChannelCode())); ossFile.setUrlMd5(Utility.getMd5(ossFile.getFileUrl())); ossFile.setStatus(FileStatusEnum.STATUS_UPLOAD_SUCCESS.getCode()); - ossFile.setFileName(item.getFileName()); + ossFile.setFileName(item.getTargetFileName()); ossFile.setFileMd5(Utility.getMd5(ossFile.getFileUrl())); return ossFile; }