From f20bc55e5f9af8fda5c4005d55093a821b63e1fc Mon Sep 17 00:00:00 2001 From: zhangtianyu Date: Thu, 14 Apr 2022 21:09:03 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E5=A2=9E=E5=8A=A0web=E7=AB=AF=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=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 | 47 +++++++++++++++++++ .../handler/ControllerExceptionHandler.java | 7 +++ .../axzo/oss/client/vo/WebFileUploadVo.java | 22 +++++++++ .../cn/axzo/oss/common/enums/CodeEnum.java | 1 + .../api/dto/request/ServerFileUploadDto.java | 8 +++- 5 files changed, 83 insertions(+), 2 deletions(-) create mode 100644 oss-client/src/main/java/cn/axzo/oss/client/controller/WebFileController.java create mode 100644 oss-client/src/main/java/cn/axzo/oss/client/vo/WebFileUploadVo.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 new file mode 100644 index 0000000..3397700 --- /dev/null +++ b/oss-client/src/main/java/cn/axzo/oss/client/controller/WebFileController.java @@ -0,0 +1,47 @@ +package cn.axzo.oss.client.controller; + +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.ServerFileUploadResponse; +import cn.axzo.oss.service.api.FileService; +import cn.azxo.framework.common.model.CommonResponse; +import lombok.SneakyThrows; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.validation.Valid; + +/** + * 前端文件controller + * + * @author zhangtianyu + * @date 2022/4/14 2:56 PM + **/ +@RestController +@RequestMapping("/webApi") +public class WebFileController { + @Resource + private FileService fileService; + + @SneakyThrows + @PostMapping("/v1/file") + public CommonResponse upload(@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(); + ServerFileUploadResponse response = fileService.upload(fileUploadDto); + WebFileUploadVo result = BeanConvertUtil.copyBean(response, WebFileUploadVo.class); + return CommonResponse.success(result); + } + +} diff --git a/oss-client/src/main/java/cn/axzo/oss/client/handler/ControllerExceptionHandler.java b/oss-client/src/main/java/cn/axzo/oss/client/handler/ControllerExceptionHandler.java index ea5cf44..bfb854c 100644 --- a/oss-client/src/main/java/cn/axzo/oss/client/handler/ControllerExceptionHandler.java +++ b/oss-client/src/main/java/cn/axzo/oss/client/handler/ControllerExceptionHandler.java @@ -10,6 +10,7 @@ import org.springframework.dao.DuplicateKeyException; import org.springframework.validation.BindingResult; import org.springframework.validation.FieldError; import org.springframework.web.bind.MethodArgumentNotValidException; +import org.springframework.web.bind.MissingServletRequestParameterException; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; @@ -23,6 +24,12 @@ import org.springframework.web.bind.annotation.RestControllerAdvice; @RestControllerAdvice public class ControllerExceptionHandler { + @ExceptionHandler(value = MissingServletRequestParameterException.class) + public CommonResponse handleMissingRequestParam(MissingServletRequestParameterException e) { + log.warn("[oss] ControllerExceptionHandler.missing servlet request parameter Exception", e); + return CommonResponse.error(CodeEnum.MISSING_REQUEST_PARAM.getCode(), e.getMessage()); + } + @ExceptionHandler(value = BizException.class) public CommonResponse bizException(BizException e){ log.warn("[oss] ControllerExceptionHandler.bizException Exception", e); diff --git a/oss-client/src/main/java/cn/axzo/oss/client/vo/WebFileUploadVo.java b/oss-client/src/main/java/cn/axzo/oss/client/vo/WebFileUploadVo.java new file mode 100644 index 0000000..4ffa7f5 --- /dev/null +++ b/oss-client/src/main/java/cn/axzo/oss/client/vo/WebFileUploadVo.java @@ -0,0 +1,22 @@ +package cn.axzo.oss.client.vo; + +import lombok.Data; + +/** + * 前端上传文件返回实体 + * + * @author zhangtianyu + * @date 2022/4/14 3:26 PM + **/ +@Data +public class WebFileUploadVo { + private String url; + /** + * 文件 Key + */ + private String fileKey; + /** + * URL MD5 + */ + private String urlMd5; +} diff --git a/oss-common/src/main/java/cn/axzo/oss/common/enums/CodeEnum.java b/oss-common/src/main/java/cn/axzo/oss/common/enums/CodeEnum.java index e8323bc..b077d45 100644 --- a/oss-common/src/main/java/cn/axzo/oss/common/enums/CodeEnum.java +++ b/oss-common/src/main/java/cn/axzo/oss/common/enums/CodeEnum.java @@ -40,6 +40,7 @@ public enum CodeEnum implements EnumBase { NOT_FILE_FORMAT(108,"failed to get file format"), FILE_FORMAT_NOT_SUPPORTED(109,"file format is not supported"), FILE_UPLOAD_FAILED(109,"file upload failed"), + MISSING_REQUEST_PARAM(110, "missing request param"), ; diff --git a/oss-manager-api/src/main/java/cn/axzo/oss/manager/api/dto/request/ServerFileUploadDto.java b/oss-manager-api/src/main/java/cn/axzo/oss/manager/api/dto/request/ServerFileUploadDto.java index c290db6..4a864c2 100644 --- a/oss-manager-api/src/main/java/cn/axzo/oss/manager/api/dto/request/ServerFileUploadDto.java +++ b/oss-manager-api/src/main/java/cn/axzo/oss/manager/api/dto/request/ServerFileUploadDto.java @@ -1,8 +1,9 @@ package cn.axzo.oss.manager.api.dto.request; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; /** * @program: oss @@ -11,6 +12,9 @@ import lombok.Data; * @date: 2021-07-29 18:31 **/ @Data +@Builder +@NoArgsConstructor +@AllArgsConstructor public class ServerFileUploadDto { private String appCode; private String bizScene; From 9088cc94f31cbba93e4ae75df6e568797b15c936 Mon Sep 17 00:00:00 2001 From: zhangtianyu Date: Fri, 15 Apr 2022 10:48:53 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E6=96=87=E4=BB=B6=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E6=94=AF=E6=8C=81=E8=B7=A8=E5=9F=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/axzo/oss/client/controller/WebFileController.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) 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 3397700..db9c818 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 @@ -7,10 +7,7 @@ import cn.axzo.oss.manager.api.dto.response.ServerFileUploadResponse; import cn.axzo.oss.service.api.FileService; import cn.azxo.framework.common.model.CommonResponse; import lombok.SneakyThrows; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; @@ -30,6 +27,7 @@ public class WebFileController { @SneakyThrows @PostMapping("/v1/file") + @CrossOrigin public CommonResponse upload(@Valid @RequestParam String appCode, @Valid @RequestParam String bizScene, @Valid @RequestParam MultipartFile file) { From 39a72523360cbdaaf6cb9f0b2ad378ddd5d9d1f6 Mon Sep 17 00:00:00 2001 From: zhangtianyu Date: Mon, 18 Apr 2022 18:19:28 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=85=A8=E5=B1=80Missing?= =?UTF-8?q?ServletRequestPartException=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../oss/client/handler/ControllerExceptionHandler.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/oss-client/src/main/java/cn/axzo/oss/client/handler/ControllerExceptionHandler.java b/oss-client/src/main/java/cn/axzo/oss/client/handler/ControllerExceptionHandler.java index bfb854c..9500aea 100644 --- a/oss-client/src/main/java/cn/axzo/oss/client/handler/ControllerExceptionHandler.java +++ b/oss-client/src/main/java/cn/axzo/oss/client/handler/ControllerExceptionHandler.java @@ -13,6 +13,7 @@ import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.MissingServletRequestParameterException; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; +import org.springframework.web.multipart.support.MissingServletRequestPartException; /** * @program: oss @@ -30,6 +31,12 @@ public class ControllerExceptionHandler { return CommonResponse.error(CodeEnum.MISSING_REQUEST_PARAM.getCode(), e.getMessage()); } + @ExceptionHandler(value = MissingServletRequestPartException.class) + public CommonResponse handleMissingRequestPart(MissingServletRequestPartException e) { + log.warn("[oss] ControllerExceptionHandler.missing servlet request part Exception", e); + return CommonResponse.error(CodeEnum.MISSING_REQUEST_PARAM.getCode(), e.getMessage()); + } + @ExceptionHandler(value = BizException.class) public CommonResponse bizException(BizException e){ log.warn("[oss] ControllerExceptionHandler.bizException Exception", e); From b37eb8c12c4cdbd5a03ec8830989c90efe1e8b4c Mon Sep 17 00:00:00 2001 From: zhangran Date: Fri, 12 Aug 2022 10:58:47 +0800 Subject: [PATCH 4/4] =?UTF-8?q?fix-=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/cn/axzo/oss/http/api/ServerFileServiceApi.java | 5 ++--- pom.xml | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) 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 ec590f9..75b1710 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 @@ -19,7 +19,6 @@ import org.springframework.web.bind.annotation.RequestMethod; name = "oss", url = "http://oss:9123" ) -@RequestMapping(value = "/api/v1/server") public interface ServerFileServiceApi { /** @@ -27,7 +26,7 @@ public interface ServerFileServiceApi { * @param request * @return */ - @RequestMapping(value = "/upload", method = RequestMethod.POST) + @RequestMapping(value = "/api/v1/server/upload", method = RequestMethod.POST) CommonResponse upload(ServerFileUploadRequest request); /** @@ -35,7 +34,7 @@ public interface ServerFileServiceApi { * @param request * @return */ - @RequestMapping(value = "/delete", method = RequestMethod.POST) + @RequestMapping(value = "/api/v1/server/delete", method = RequestMethod.POST) CommonResponse delete(ServerFileDeleteRequest request); } diff --git a/pom.xml b/pom.xml index 5adde92..2267e93 100644 --- a/pom.xml +++ b/pom.xml @@ -20,7 +20,7 @@ 1.1.4 8.5.0 - 1.0.0 + 1.0.1 4.4 3.5