feat:(REQ-3540) 获取上传地址,如果入参中有fileKey

This commit is contained in:
xudawei 2025-03-13 15:51:47 +08:00
parent 5d03e66a00
commit 8329be13ef
3 changed files with 36 additions and 18 deletions

View File

@ -65,4 +65,9 @@ public class ApiSignUrlUploadRequest {
* 桶key
*/
private String bucketKey;
/**
* 文件key
*/
private String fileKey;
}

View File

@ -67,4 +67,9 @@ public class SignUrlUploadDto {
* 桶key
*/
private String bucketKey;
/**
* 文件key
*/
private String fileKey;
}

View File

@ -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;
}