Merge branch 'feature/upload_830' of https://axzsource.com/infra/oss into planz

 Conflicts:
	pom.xml
This commit is contained in:
wangjibo 2022-08-31 14:19:54 +08:00
commit a0bd9c6e57
6 changed files with 90 additions and 5 deletions

View File

@ -0,0 +1,45 @@
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.*;
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")
@CrossOrigin
public CommonResponse<WebFileUploadVo> 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);
}
}

View File

@ -10,8 +10,10 @@ import org.springframework.dao.DuplicateKeyException;
import org.springframework.validation.BindingResult; import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError; import org.springframework.validation.FieldError;
import org.springframework.web.bind.MethodArgumentNotValidException; 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.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice; import org.springframework.web.bind.annotation.RestControllerAdvice;
import org.springframework.web.multipart.support.MissingServletRequestPartException;
/** /**
* @program: oss * @program: oss
@ -23,6 +25,18 @@ import org.springframework.web.bind.annotation.RestControllerAdvice;
@RestControllerAdvice @RestControllerAdvice
public class ControllerExceptionHandler { 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 = 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) @ExceptionHandler(value = BizException.class)
public CommonResponse bizException(BizException e){ public CommonResponse bizException(BizException e){
log.warn("[oss] ControllerExceptionHandler.bizException Exception", e); log.warn("[oss] ControllerExceptionHandler.bizException Exception", e);

View File

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

View File

@ -40,6 +40,7 @@ public enum CodeEnum implements EnumBase<Integer> {
NOT_FILE_FORMAT(108,"failed to get file format"), NOT_FILE_FORMAT(108,"failed to get file format"),
FILE_FORMAT_NOT_SUPPORTED(109,"file format is not supported"), FILE_FORMAT_NOT_SUPPORTED(109,"file format is not supported"),
FILE_UPLOAD_FAILED(109,"file upload failed"), FILE_UPLOAD_FAILED(109,"file upload failed"),
MISSING_REQUEST_PARAM(110, "missing request param"),
; ;

View File

@ -19,7 +19,6 @@ import org.springframework.web.bind.annotation.RequestMethod;
name = "oss", name = "oss",
url = "http://oss:9123" url = "http://oss:9123"
) )
@RequestMapping(value = "/api/v1/server")
public interface ServerFileServiceApi { public interface ServerFileServiceApi {
/** /**
@ -27,7 +26,7 @@ public interface ServerFileServiceApi {
* @param request * @param request
* @return * @return
*/ */
@RequestMapping(value = "/upload", method = RequestMethod.POST) @RequestMapping(value = "/api/v1/server/upload", method = RequestMethod.POST)
CommonResponse<ServerFileUploadResponse> upload(ServerFileUploadRequest request); CommonResponse<ServerFileUploadResponse> upload(ServerFileUploadRequest request);
/** /**
@ -35,7 +34,7 @@ public interface ServerFileServiceApi {
* @param request * @param request
* @return * @return
*/ */
@RequestMapping(value = "/delete", method = RequestMethod.POST) @RequestMapping(value = "/api/v1/server/delete", method = RequestMethod.POST)
CommonResponse delete(ServerFileDeleteRequest request); CommonResponse delete(ServerFileDeleteRequest request);
} }

View File

@ -1,8 +1,9 @@
package cn.axzo.oss.manager.api.dto.request; package cn.axzo.oss.manager.api.dto.request;
import javax.validation.constraints.NotBlank; import lombok.AllArgsConstructor;
import javax.validation.constraints.NotNull; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
/** /**
* @program: oss * @program: oss
@ -11,6 +12,9 @@ import lombok.Data;
* @date: 2021-07-29 18:31 * @date: 2021-07-29 18:31
**/ **/
@Data @Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ServerFileUploadDto { public class ServerFileUploadDto {
private String appCode; private String appCode;
private String bizScene; private String bizScene;