解决冲突

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

View File

@ -1,11 +1,13 @@
package cn.axzo.oss.client.controller; package cn.axzo.oss.client.controller;
import cn.axzo.core.utils.converter.BeanConverter; 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.FindFileUrlVo;
import cn.axzo.oss.client.vo.WebFileUploadVo; import cn.axzo.oss.client.vo.WebFileUploadVo;
import cn.axzo.oss.common.utils.BeanConvertUtil; import cn.axzo.oss.common.utils.BeanConvertUtil;
import cn.axzo.oss.manager.api.dto.request.FindFileUrlDto; 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.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.FindFileUrlResponse;
import cn.axzo.oss.manager.api.dto.response.ServerFileUploadResponse; import cn.axzo.oss.manager.api.dto.response.ServerFileUploadResponse;
import cn.axzo.oss.service.api.FileService; import cn.axzo.oss.service.api.FileService;
@ -59,4 +61,21 @@ public class WebFileController {
List<FindFileUrlResponse> response = fileService.findFileUrl(dto); List<FindFileUrlResponse> response = fileService.findFileUrl(dto);
return CommonResponse.success(BeanConverter.convert(response, FindFileUrlVo.class)); 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) @RequestMapping(value = "/api/v1/server/upload", method = RequestMethod.POST)
CommonResponse<ServerFileUploadResponse> upload(ServerFileUploadRequest request); CommonResponse<ServerFileUploadResponse> upload(ServerFileUploadRequest request);
/**
* 上传文件
* @param request
* @return
*/
@RequestMapping(value = "/api/v2/server/upload", method = RequestMethod.POST)
CommonResponse<FileInformationResponse> uploadV2(ServerFileUploadRequest request);
/** /**
* 删除文件 * 删除文件
* @param 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.FindFileUrlDto;
import cn.axzo.oss.manager.api.dto.request.ServerFileDeleteDto; 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.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.FindFileKeyResponse;
import cn.axzo.oss.manager.api.dto.response.FindFileUrlResponse; import cn.axzo.oss.manager.api.dto.response.FindFileUrlResponse;
import cn.axzo.oss.manager.api.dto.response.ServerFileUploadResponse; import cn.axzo.oss.manager.api.dto.response.ServerFileUploadResponse;
@ -35,4 +36,6 @@ public interface FileService {
List<FindFileUrlResponse> findFileUrl(FindFileUrlDto dto); List<FindFileUrlResponse> findFileUrl(FindFileUrlDto dto);
List<FindFileKeyResponse> findFileKey(FindFileKeyDto 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.FindFileUrlDto;
import cn.axzo.oss.manager.api.dto.request.ServerFileDeleteDto; 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.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.FindFileKeyResponse;
import cn.axzo.oss.manager.api.dto.response.FindFileUrlResponse; import cn.axzo.oss.manager.api.dto.response.FindFileUrlResponse;
import cn.axzo.oss.manager.api.dto.response.ServerFileUploadResponse; import cn.axzo.oss.manager.api.dto.response.ServerFileUploadResponse;
@ -113,6 +114,17 @@ public class FileServiceImpl implements FileService {
*/ */
@Override @Override
public ServerFileUploadResponse upload(ServerFileUploadDto dto) { 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:{}", log.info("update fileName:{},appCode:{},bizScene:{}",
dto.getFileName(), dto.getAppCode(), dto.getBizScene()); dto.getFileName(), dto.getAppCode(), dto.getBizScene());
// 检查appCode // 检查appCode
@ -128,11 +140,8 @@ public class FileServiceImpl implements FileService {
// 通过渠道码和桶名称获取获取指定上传配置 // 通过渠道码和桶名称获取获取指定上传配置
FileUploadConfig fileUploadConfig = fileUploadConfigManager FileUploadConfig fileUploadConfig = fileUploadConfigManager
.getByUploadConfig(scene.getAppChannelBucketNo(), scene.getDirectory()); .getByUploadConfig(scene.getAppChannelBucketNo(), scene.getDirectory());
// 上传文件并生成file对象 // 上传文件并生成file对象
File ossFile = generateFile(fileUploadConfig, dto); return generateFile(fileUploadConfig, dto);
return setResponse(ossFile);
} }
@Override @Override
@ -261,4 +270,11 @@ public class FileServiceImpl implements FileService {
return response; 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;
}
} }