From 8329be13efe4990fd87e31fabaf4a4c6c916973a Mon Sep 17 00:00:00 2001 From: xudawei Date: Thu, 13 Mar 2025 15:51:47 +0800 Subject: [PATCH] =?UTF-8?q?feat:(REQ-3540)=20=E8=8E=B7=E5=8F=96=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E5=9C=B0=E5=9D=80=EF=BC=8C=E5=A6=82=E6=9E=9C=E5=85=A5?= =?UTF-8?q?=E5=8F=82=E4=B8=AD=E6=9C=89fileKey?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../http/model/ApiSignUrlUploadRequest.java | 5 +++ .../api/dto/request/SignUrlUploadDto.java | 5 +++ .../metafile/impl/HandleFileService.java | 44 +++++++++++-------- 3 files changed, 36 insertions(+), 18 deletions(-) diff --git a/oss-http-api/src/main/java/cn/axzo/oss/http/model/ApiSignUrlUploadRequest.java b/oss-http-api/src/main/java/cn/axzo/oss/http/model/ApiSignUrlUploadRequest.java index 9a4a93a..e65c9b7 100644 --- a/oss-http-api/src/main/java/cn/axzo/oss/http/model/ApiSignUrlUploadRequest.java +++ b/oss-http-api/src/main/java/cn/axzo/oss/http/model/ApiSignUrlUploadRequest.java @@ -65,4 +65,9 @@ public class ApiSignUrlUploadRequest { * 桶key */ private String bucketKey; + + /** + * 文件key + */ + private String fileKey; } diff --git a/oss-manager-api/src/main/java/cn/axzo/oss/manager/api/dto/request/SignUrlUploadDto.java b/oss-manager-api/src/main/java/cn/axzo/oss/manager/api/dto/request/SignUrlUploadDto.java index 2bcd299..05e47b4 100644 --- a/oss-manager-api/src/main/java/cn/axzo/oss/manager/api/dto/request/SignUrlUploadDto.java +++ b/oss-manager-api/src/main/java/cn/axzo/oss/manager/api/dto/request/SignUrlUploadDto.java @@ -67,4 +67,9 @@ public class SignUrlUploadDto { * 桶key */ private String bucketKey; + + /** + * 文件key + */ + private String fileKey; } diff --git a/oss-service/src/main/java/cn/axzo/oss/service/metafile/impl/HandleFileService.java b/oss-service/src/main/java/cn/axzo/oss/service/metafile/impl/HandleFileService.java index 4692980..8c21242 100644 --- a/oss-service/src/main/java/cn/axzo/oss/service/metafile/impl/HandleFileService.java +++ b/oss-service/src/main/java/cn/axzo/oss/service/metafile/impl/HandleFileService.java @@ -37,6 +37,10 @@ public class HandleFileService extends WithFileService{ public SignUrlUploadResponse doSaveFile(SignUrlUploadDto dto, FileUploadConfig fileUploadConfig, FileBusinessScene scene, AppChannelBucket appChannelBucket, String fileFormat) { String uuid = Utility.getUUID(); + //如果fileKey不为空,则以fileKey为准 + if (StringUtils.isNotBlank(dto.getFileKey())) { + uuid = dto.getFileKey(); + } // 生成上传文件的唯一key String tgtFileKey = Utility.generateFileKey(fileUploadConfig.getDirectory(), uuid, fileFormat); // 失效时间 @@ -68,24 +72,28 @@ public class HandleFileService extends WithFileService{ private File saveOssFile(FileUploadConfig fileUploadConfig, String fileName, String fileConform, String uuid, String fileUrl, String fileMd5, Long expiration) { - File ossFile = new File(); - ossFile.setAppChannelBucketNo(fileUploadConfig.getAppChannelBucketNo()); - ossFile.setAppCode(fileUploadConfig.getAppCode()); - ossFile.setChannelCode(fileUploadConfig.getChannelCode()); - ossFile.setBucketName(fileUploadConfig.getBucketName()); - ossFile.setDirectory(fileUploadConfig.getDirectory()); - ossFile.setStatus(FileStatusEnum.STATUS_UPLOAD_FAIL.getCode()); - ossFile.setStorageUnit(fileUploadConfig.getStorageUnit()); - ossFile.setStorageSize(fileUploadConfig.getStorageSize()); - ossFile.setFileFormat(fileConform); - ossFile.setFileUuid(uuid); - ossFile.setFileUrl(fileUrl); - ossFile.setUrlMd5(Utility.getMd5(fileUrl)); - ossFile.setStatus(FileStatusEnum.STATUS_UPLOAD_SUCCESS.getCode()); - ossFile.setFileName(fileName); - ossFile.setFileMd5(fileMd5); - fileDao.save(ossFile); - return ossFile; + File byFileUuid = this.fileDao.getByFileUuid(uuid); + if (Objects.isNull(byFileUuid) || Objects.isNull(byFileUuid.getId())) { + File ossFile = new File(); + ossFile.setAppChannelBucketNo(fileUploadConfig.getAppChannelBucketNo()); + ossFile.setAppCode(fileUploadConfig.getAppCode()); + ossFile.setChannelCode(fileUploadConfig.getChannelCode()); + ossFile.setBucketName(fileUploadConfig.getBucketName()); + ossFile.setDirectory(fileUploadConfig.getDirectory()); + ossFile.setStatus(FileStatusEnum.STATUS_UPLOAD_FAIL.getCode()); + ossFile.setStorageUnit(fileUploadConfig.getStorageUnit()); + ossFile.setStorageSize(fileUploadConfig.getStorageSize()); + ossFile.setFileFormat(fileConform); + ossFile.setFileUuid(uuid); + ossFile.setFileUrl(fileUrl); + ossFile.setUrlMd5(Utility.getMd5(fileUrl)); + ossFile.setStatus(FileStatusEnum.STATUS_UPLOAD_SUCCESS.getCode()); + ossFile.setFileName(fileName); + ossFile.setFileMd5(fileMd5); + fileDao.save(ossFile); + return ossFile; + } + return byFileUuid; }