解决冲突

This commit is contained in:
tianliyong 2022-11-17 17:03:21 +08:00
commit fd8383c750
8 changed files with 132 additions and 5 deletions

View File

@ -34,11 +34,19 @@ public class ServerFileController implements ServerFileServiceApi {
public CommonResponse<ServerFileUploadResponse> upload(@Valid @RequestBody ServerFileUploadRequest request) {
ServerFileUploadDto dto = BeanConvertUtil.copyBean(request, ServerFileUploadDto.class);
request.setFileContent(null);
return CommonResponse.success(BeanConverter.convert(fileService.upload(dto),ServerFileUploadResponse.class));
return CommonResponse.success(BeanConverter.convert(fileService.upload(dto), ServerFileUploadResponse.class));
}
@Override
public CommonResponse<FileInformationResponse> 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
* @return
*/
@ -51,6 +59,7 @@ public class ServerFileController implements ServerFileServiceApi {
/**
* 获取文件url
*
* @param request
* @return
*/
@ -62,6 +71,7 @@ public class ServerFileController implements ServerFileServiceApi {
/**
* 获取文件key,用于历史数据清理
*
* @param request
* @return
*/

View File

@ -1,11 +1,13 @@
package cn.axzo.oss.client.controller;
import cn.axzo.core.utils.converter.BeanConverter;
import cn.axzo.oss.client.vo.FileInformationVo;
import cn.axzo.oss.client.vo.FindFileUrlVo;
import cn.axzo.oss.client.vo.WebFileUploadVo;
import cn.axzo.oss.common.utils.BeanConvertUtil;
import cn.axzo.oss.manager.api.dto.request.FindFileUrlDto;
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.FindFileUrlResponse;
import cn.axzo.oss.manager.api.dto.response.ServerFileUploadResponse;
import cn.axzo.oss.service.api.FileService;
@ -59,4 +61,21 @@ public class WebFileController {
List<FindFileUrlResponse> response = fileService.findFileUrl(dto);
return CommonResponse.success(BeanConverter.convert(response, FindFileUrlVo.class));
}
@PostMapping("/v2/file")
@CrossOrigin
@SneakyThrows
public CommonResponse<FileInformationVo> 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);
}
}

View File

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

View File

@ -29,6 +29,14 @@ public interface ServerFileServiceApi {
@RequestMapping(value = "/api/v1/server/upload", method = RequestMethod.POST)
CommonResponse<ServerFileUploadResponse> upload(ServerFileUploadRequest request);
/**
* 上传文件
* @param request
* @return
*/
@RequestMapping(value = "/api/v2/server/upload", method = RequestMethod.POST)
CommonResponse<FileInformationResponse> uploadV2(ServerFileUploadRequest request);
/**
* 删除文件
* @param request

View File

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

View File

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

View File

@ -4,6 +4,7 @@ import cn.axzo.oss.manager.api.dto.request.FindFileKeyDto;
import cn.axzo.oss.manager.api.dto.request.FindFileUrlDto;
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.FindFileKeyResponse;
import cn.axzo.oss.manager.api.dto.response.FindFileUrlResponse;
import cn.axzo.oss.manager.api.dto.response.ServerFileUploadResponse;
@ -35,4 +36,6 @@ public interface FileService {
List<FindFileUrlResponse> findFileUrl(FindFileUrlDto dto);
List<FindFileKeyResponse> findFileKey(FindFileKeyDto dto);
FileInformationResponse uploadV2(ServerFileUploadDto request);
}

View File

@ -20,6 +20,7 @@ import cn.axzo.oss.manager.api.dto.request.FindFileKeyDto;
import cn.axzo.oss.manager.api.dto.request.FindFileUrlDto;
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.FindFileKeyResponse;
import cn.axzo.oss.manager.api.dto.response.FindFileUrlResponse;
import cn.axzo.oss.manager.api.dto.response.ServerFileUploadResponse;
@ -113,6 +114,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
@ -128,11 +140,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);
}
@Override
@ -261,4 +270,11 @@ 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;
}
}