add(req-2119):下载时文件夹处理

This commit is contained in:
胡朝飞 2024-03-15 15:56:05 +08:00
parent ef5fdcb47f
commit d1addee4cb
2 changed files with 3 additions and 69 deletions

View File

@ -269,74 +269,6 @@ public class WebFileController {
return CommonResponse.success(result);
}
/**
* obs流式下载
*
* @param dto ServerFileDownloadDto
* @param response HttpServletResponse
*/
@SneakyThrows
@GetMapping("/v1/obs/getObject")
@CrossOrigin
public void getObject(@Valid ServerFileDownloadDto dto, HttpServletResponse response) {
ServerFileDownloadResponse result = fileService.getObject(dto, FileDownloadTypeEnum.STREAM_DOWNLOAD.getCode());
try (OutputStream outputStream = response.getOutputStream(); InputStream inputStream = result.getFileStream()) {
response.setContentType("image/jpg");
response.setCharacterEncoding("UTF-8");
response.addHeader("Content-Disposition", "attachment;filename="
+ result.getFileName() + "." + result.getFileFormat());
IOUtils.copy(inputStream, outputStream);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* obs断点续传下载
*
* @param dto ServerFileDownloadDto
* @param response HttpServletResponse
*/
@SneakyThrows
@GetMapping("/v1/obs/downloadFile")
@CrossOrigin
public void downloadFile(@Valid ServerFileDownloadDto dto, HttpServletResponse response) {
ServerFileDownloadResponse result = fileService.getObject(dto, FileDownloadTypeEnum.CHECK_POINT_DOWNLOAD.getCode());
try (OutputStream outputStream = response.getOutputStream(); InputStream inputStream = result.getFileStream()) {
response.setContentType("image/jpg");
response.setCharacterEncoding("UTF-8");
response.addHeader("Content-Disposition", "attachment;filename="
+ result.getFileName() + "." + result.getFileFormat());
IOUtils.copy(inputStream, outputStream);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 远程下载接口
*
* @param fileUuId 文件uuid
* @param response HttpServletResponse
*/
@GetMapping("/v1/obs/downloadFileFromObs")
public void downloadFileFromObs(@RequestParam("fileUuid") String fileUuId, HttpServletResponse response) {
ServerFileDownloadDto dto = new ServerFileDownloadDto();
dto.setFileKey(fileUuId);
ServerFileDownloadResponse result = fileService.getObject(dto, FileDownloadTypeEnum.STREAM_DOWNLOAD.getCode());
try (OutputStream outputStream = response.getOutputStream(); InputStream inputStream = result.getFileStream()) {
response.setHeader("content-type","application/octet-stream");
response.setContentType("application/octet-stream");
response.setCharacterEncoding("UTF-8");
response.addHeader("Content-Disposition", "attachment;filename=" + result.getFileName() + "." + result.getFileFormat());
IOUtils.copy(inputStream, outputStream);
log.info("response设置文件流成功");
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 通过临时url访问OBS
*

View File

@ -714,7 +714,9 @@ public class FileServiceImpl implements FileService {
}
// 对象名称目录+文件名
String objectKey = file.getDirectory() + SEPARATOR + file.getFileName();
String directory = file.getDirectory().substring(0, file.getDirectory().indexOf("/"));
String objectKey = huaWeiCloudObsConfig.getProfilesActive() + SEPARATOR + directory + SEPARATOR + file.getFileName();
// 桶名称
String bucketName = file.getBucketName();
InputStream fileStream = null;