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 cb2db71..c96b8fb 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 @@ -3,6 +3,7 @@ package cn.axzo.oss.client.controller; import cn.axzo.core.utils.converter.BeanConverter; import cn.axzo.oss.common.utils.BeanConvertUtil; import cn.axzo.oss.http.api.ServerFileServiceApi; +import cn.axzo.oss.http.model.FileInformationResponse; import cn.axzo.oss.http.model.ServerFileDeleteRequest; import cn.axzo.oss.http.model.ServerFileUploadRequest; import cn.axzo.oss.http.model.ServerFileUploadResponse; @@ -36,6 +37,13 @@ public class ServerFileController implements ServerFileServiceApi { return CommonResponse.success(BeanConverter.convert(fileService.upload(dto),ServerFileUploadResponse.class)); } + @Override + public CommonResponse uploadV2(ServerFileUploadRequest request) { + ServerFileUploadDto dto = BeanConvertUtil.copyBean(request, ServerFileUploadDto.class); + request.setFileContent(null); + return CommonResponse.success(BeanConverter.convert(fileService.uploadV2(dto),FileInformationResponse.class)); + } + /** * 根据文件url删除文件 * @param request 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 75b1710..a17b017 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 @@ -1,5 +1,6 @@ package cn.axzo.oss.http.api; +import cn.axzo.oss.http.model.FileInformationResponse; import cn.axzo.oss.http.model.ServerFileDeleteRequest; import cn.axzo.oss.http.model.ServerFileUploadRequest; import cn.axzo.oss.http.model.ServerFileUploadResponse; @@ -29,6 +30,14 @@ public interface ServerFileServiceApi { @RequestMapping(value = "/api/v1/server/upload", method = RequestMethod.POST) CommonResponse upload(ServerFileUploadRequest request); + /** + * 上传文件 + * @param request + * @return + */ + @RequestMapping(value = "/api/v2/server/upload", method = RequestMethod.POST) + CommonResponse uploadV2(ServerFileUploadRequest request); + /** * 删除文件 * @param request diff --git a/oss-http-api/src/main/java/cn/axzo/oss/http/model/FileInformationResponse.java b/oss-http-api/src/main/java/cn/axzo/oss/http/model/FileInformationResponse.java new file mode 100644 index 0000000..f7d3856 --- /dev/null +++ b/oss-http-api/src/main/java/cn/axzo/oss/http/model/FileInformationResponse.java @@ -0,0 +1,23 @@ +package cn.axzo.oss.http.model; + +import lombok.Data; + +@Data +public class FileInformationResponse { + /** + * 文件 URL + */ + private String url; + /** + * 文件名称 + */ + private String fileName; + /** + * 文件大小 + */ + private Long fileSize; + /** + * URL MD5 + */ + private String urlMd5; +} diff --git a/oss-manager-api/src/main/java/cn/axzo/oss/manager/api/dto/response/FileInformationResponse.java b/oss-manager-api/src/main/java/cn/axzo/oss/manager/api/dto/response/FileInformationResponse.java new file mode 100644 index 0000000..73cc490 --- /dev/null +++ b/oss-manager-api/src/main/java/cn/axzo/oss/manager/api/dto/response/FileInformationResponse.java @@ -0,0 +1,24 @@ +package cn.axzo.oss.manager.api.dto.response; + +import lombok.Data; + +@Data +public class FileInformationResponse { + /** + * 文件 URL + */ + private String url; + /** + * 文件名称 + */ + private String fileName; + /** + * 文件大小 + */ + private Long fileSize; + + /** + * URL MD5 + */ + private String urlMd5; +} diff --git a/oss-service-api/src/main/java/cn/axzo/oss/service/api/FileService.java b/oss-service-api/src/main/java/cn/axzo/oss/service/api/FileService.java index fafed85..c8fbc37 100644 --- a/oss-service-api/src/main/java/cn/axzo/oss/service/api/FileService.java +++ b/oss-service-api/src/main/java/cn/axzo/oss/service/api/FileService.java @@ -2,6 +2,7 @@ package cn.axzo.oss.service.api; import cn.axzo.oss.manager.api.dto.request.ServerFileDeleteDto; import cn.axzo.oss.manager.api.dto.request.ServerFileUploadDto; +import cn.axzo.oss.manager.api.dto.response.FileInformationResponse; import cn.axzo.oss.manager.api.dto.response.ServerFileUploadResponse; /** @@ -25,4 +26,6 @@ public interface FileService { * @param request */ ServerFileUploadResponse upload(ServerFileUploadDto request); + + FileInformationResponse uploadV2(ServerFileUploadDto request); } 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 ce92433..427561d 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 @@ -22,6 +22,7 @@ import cn.axzo.oss.manager.api.FileManager; import cn.axzo.oss.manager.api.FileUploadConfigManager; import cn.axzo.oss.manager.api.dto.request.ServerFileDeleteDto; import cn.axzo.oss.manager.api.dto.request.ServerFileUploadDto; +import cn.axzo.oss.manager.api.dto.response.FileInformationResponse; import cn.axzo.oss.manager.api.dto.response.ServerFileUploadResponse; import cn.axzo.oss.service.api.FileService; import java.util.Arrays; @@ -108,6 +109,17 @@ public class FileServiceImpl implements FileService { */ @Override public ServerFileUploadResponse upload(ServerFileUploadDto dto) { + File ossFile = uploadFileAndGetFile(dto); + return setResponse(ossFile); + } + + @Override + public FileInformationResponse uploadV2(ServerFileUploadDto request) { + File ossFile = uploadFileAndGetFile(request); + return setFileInfoResp(ossFile); + } + + private File uploadFileAndGetFile(ServerFileUploadDto dto) { log.info("update fileName:{},appCode:{},bizScene:{}", dto.getFileName(), dto.getAppCode(), dto.getBizScene()); // 检查appCode @@ -123,11 +135,8 @@ public class FileServiceImpl implements FileService { // 通过渠道码和桶名称获取获取指定上传配置 FileUploadConfig fileUploadConfig = fileUploadConfigManager .getByUploadConfig(scene.getAppChannelBucketNo(), scene.getDirectory()); - // 上传文件并生成file对象 - File ossFile = generateFile(fileUploadConfig, dto); - - return setResponse(ossFile); + return generateFile(fileUploadConfig, dto); } /** @@ -202,4 +211,12 @@ public class FileServiceImpl implements FileService { return response; } + private FileInformationResponse setFileInfoResp(File ossFile){ + FileInformationResponse resp=new FileInformationResponse(); + resp.setUrl(ossFile.getFileUrl()); + resp.setFileName(ossFile.getFileName()); + resp.setUrlMd5(ossFile.getUrlMd5()); + return resp; + } + }