扩展上传文件接口

This commit is contained in:
刘才福 2022-11-04 17:44:11 +08:00
parent 2f3a69d278
commit 94cd46e73d
6 changed files with 88 additions and 4 deletions

View File

@ -3,6 +3,7 @@ package cn.axzo.oss.client.controller;
import cn.axzo.core.utils.converter.BeanConverter; import cn.axzo.core.utils.converter.BeanConverter;
import cn.axzo.oss.common.utils.BeanConvertUtil; import cn.axzo.oss.common.utils.BeanConvertUtil;
import cn.axzo.oss.http.api.ServerFileServiceApi; 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.ServerFileDeleteRequest;
import cn.axzo.oss.http.model.ServerFileUploadRequest; import cn.axzo.oss.http.model.ServerFileUploadRequest;
import cn.axzo.oss.http.model.ServerFileUploadResponse; 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)); 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

View File

@ -1,5 +1,6 @@
package cn.axzo.oss.http.api; 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.ServerFileDeleteRequest;
import cn.axzo.oss.http.model.ServerFileUploadRequest; import cn.axzo.oss.http.model.ServerFileUploadRequest;
import cn.axzo.oss.http.model.ServerFileUploadResponse; import cn.axzo.oss.http.model.ServerFileUploadResponse;
@ -29,6 +30,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

@ -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.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.ServerFileUploadResponse; import cn.axzo.oss.manager.api.dto.response.ServerFileUploadResponse;
/** /**
@ -25,4 +26,6 @@ public interface FileService {
* @param request * @param request
*/ */
ServerFileUploadResponse upload(ServerFileUploadDto request); ServerFileUploadResponse upload(ServerFileUploadDto request);
FileInformationResponse uploadV2(ServerFileUploadDto request);
} }

View File

@ -22,6 +22,7 @@ import cn.axzo.oss.manager.api.FileManager;
import cn.axzo.oss.manager.api.FileUploadConfigManager; import cn.axzo.oss.manager.api.FileUploadConfigManager;
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.ServerFileUploadResponse; import cn.axzo.oss.manager.api.dto.response.ServerFileUploadResponse;
import cn.axzo.oss.service.api.FileService; import cn.axzo.oss.service.api.FileService;
import java.util.Arrays; import java.util.Arrays;
@ -108,6 +109,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
@ -123,11 +135,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);
} }
/** /**
@ -202,4 +211,12 @@ 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;
}
} }