add(req-2119):新增“下载文件"API

This commit is contained in:
胡朝飞 2024-03-06 15:24:04 +08:00
parent b9fd00518c
commit c60e8afe37
4 changed files with 92 additions and 0 deletions

View File

@ -8,7 +8,9 @@ import cn.axzo.oss.http.model.*;
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.ServerFileDownloadDto;
import cn.axzo.oss.manager.api.dto.request.ServerFileUploadDto;
import cn.axzo.oss.manager.api.dto.response.ServerFileDownloadResponse;
import cn.axzo.oss.service.api.FileService;
import cn.azxo.framework.common.model.CommonResponse;
import cn.hutool.json.JSONUtil;
@ -92,4 +94,11 @@ public class ServerFileController implements ServerFileServiceApi {
FindFileKeyDto dto = BeanConvertUtil.copyBean(request, FindFileKeyDto.class);
return CommonResponse.success(BeanConverter.convert(fileService.findFileKey(dto), FindFileKeyResponse.class));
}
@Override
public CommonResponse<DownloadFileFromObsResponse> downloadFileFromOBS(@Valid @RequestBody DownloadFileFromObsRequest request) {
ServerFileDownloadDto serverFileDownloadDto = BeanConvertUtil.copyBean(request, ServerFileDownloadDto.class);
ServerFileDownloadResponse res = fileService.getObject(serverFileDownloadDto, request.getFileDownloadType());
return CommonResponse.success(BeanConverter.convert(res, DownloadFileFromObsResponse.class));
}
}

View File

@ -57,4 +57,13 @@ public interface ServerFileServiceApi {
*/
@RequestMapping(value = "api/v1/server/getFileKey", method = RequestMethod.POST)
CommonResponse<List<FindFileKeyResponse>> getFileKey(FindFileKeyRequest request);
/**
* 从华为云上下载文件
*
* @param request DownloadFileFromObsRequest
* @return DownloadFileFromObsResponse
*/
@RequestMapping(value = "api/v1/server/downloadFileFromOBS", method = RequestMethod.POST)
CommonResponse<DownloadFileFromObsResponse> downloadFileFromOBS(DownloadFileFromObsRequest request);
}

View File

@ -0,0 +1,28 @@
package cn.axzo.oss.http.model;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @author hucf
* @since 2024/3/6 15:11
**/
@Data
public class DownloadFileFromObsRequest {
/**
* 文件uuid
*/
@NotBlank
private String fileKey;
/**
* 图片样式
*/
private String style;
/**
* 下载方式
*/
private Integer fileDownloadType;
}

View File

@ -0,0 +1,46 @@
package cn.axzo.oss.http.model;
import lombok.Data;
import java.io.InputStream;
/**
* @author hucf
* @since 2024/3/6 15:15
**/
@Data
public class DownloadFileFromObsResponse {
/**
* 文件 URL
*/
private String url;
/**
* 文件 Key
*/
private String fileKey;
/**
* URL MD5
*/
private String urlMd5;
/**
* 文件名称
*/
private String fileName;
/**
* 文件大小
*/
private Long fileSize;
/**
* 文件格式
*/
private String fileFormat;
/**
* 文件流
*/
private InputStream fileStream;
}