扩展上传文件接口

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.oss.common.utils.BeanConvertUtil;
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.ServerFileUploadRequest;
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));
}
@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

View File

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

@ -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.ServerFileUploadDto;
import cn.axzo.oss.manager.api.dto.response.FileInformationResponse;
import cn.axzo.oss.manager.api.dto.response.ServerFileUploadResponse;
/**
@ -25,4 +26,6 @@ public interface FileService {
* @param 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.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.ServerFileUploadResponse;
import cn.axzo.oss.service.api.FileService;
import java.util.Arrays;
@ -108,6 +109,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
@ -123,11 +135,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);
}
/**
@ -202,4 +211,12 @@ 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;
}
}