add(req-2119):下载时文件夹处理
This commit is contained in:
parent
ef5fdcb47f
commit
d1addee4cb
@ -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
|
||||
*
|
||||
|
||||
@ -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;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user