From 94cd46e73dc0cf836bba9711c23b8e47e8039658 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=89=8D=E7=A6=8F?= Date: Fri, 4 Nov 2022 17:44:11 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=89=A9=E5=B1=95=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ServerFileController.java | 8 ++++++ .../oss/http/api/ServerFileServiceApi.java | 9 +++++++ .../http/model/FileInformationResponse.java | 23 +++++++++++++++++ .../dto/response/FileInformationResponse.java | 24 ++++++++++++++++++ .../cn/axzo/oss/service/api/FileService.java | 3 +++ .../oss/service/impl/FileServiceImpl.java | 25 ++++++++++++++++--- 6 files changed, 88 insertions(+), 4 deletions(-) create mode 100644 oss-http-api/src/main/java/cn/axzo/oss/http/model/FileInformationResponse.java create mode 100644 oss-manager-api/src/main/java/cn/axzo/oss/manager/api/dto/response/FileInformationResponse.java 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; + } + } From f0a0f4051504396d11a9e547b7917811bef0937f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=89=8D=E7=A6=8F?= Date: Sat, 5 Nov 2022 15:21:56 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=89=A9=E5=B1=95=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/controller/WebFileController.java | 19 +++++++++++++++ .../axzo/oss/client/vo/FileInformationVo.java | 24 +++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 oss-client/src/main/java/cn/axzo/oss/client/vo/FileInformationVo.java diff --git a/oss-client/src/main/java/cn/axzo/oss/client/controller/WebFileController.java b/oss-client/src/main/java/cn/axzo/oss/client/controller/WebFileController.java index db9c818..c580297 100644 --- a/oss-client/src/main/java/cn/axzo/oss/client/controller/WebFileController.java +++ b/oss-client/src/main/java/cn/axzo/oss/client/controller/WebFileController.java @@ -1,8 +1,10 @@ package cn.axzo.oss.client.controller; +import cn.axzo.oss.client.vo.FileInformationVo; import cn.axzo.oss.client.vo.WebFileUploadVo; import cn.axzo.oss.common.utils.BeanConvertUtil; 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 cn.azxo.framework.common.model.CommonResponse; @@ -42,4 +44,21 @@ public class WebFileController { return CommonResponse.success(result); } + + @PostMapping("/v2/file") + @CrossOrigin + @SneakyThrows + public CommonResponse uploadV2(@Valid @RequestParam String appCode, + @Valid @RequestParam String bizScene, + @Valid @RequestParam MultipartFile file) { + ServerFileUploadDto fileUploadDto = ServerFileUploadDto.builder() + .appCode(appCode) + .bizScene(bizScene) + .fileName(file.getOriginalFilename()) + .fileContent(file.getBytes()) + .build(); + FileInformationResponse response = fileService.uploadV2(fileUploadDto); + FileInformationVo result = BeanConvertUtil.copyBean(response, FileInformationVo.class); + return CommonResponse.success(result); + } } diff --git a/oss-client/src/main/java/cn/axzo/oss/client/vo/FileInformationVo.java b/oss-client/src/main/java/cn/axzo/oss/client/vo/FileInformationVo.java new file mode 100644 index 0000000..b49c0ce --- /dev/null +++ b/oss-client/src/main/java/cn/axzo/oss/client/vo/FileInformationVo.java @@ -0,0 +1,24 @@ +package cn.axzo.oss.client.vo; + +import lombok.Data; + +@Data +public class FileInformationVo { + /** + * 文件 URL + */ + private String url; + /** + * 文件名称 + */ + private String fileName; + /** + * 文件大小 + */ + private Long fileSize; + + /** + * URL MD5 + */ + private String urlMd5; +}