java是下载位于远程存储服务中的文件的有效方法
我创建了一个Java应用程序来存储和下载大文件,因此当客户端上载文件时,它将被传输到服务器,服务器将其发送到存储云服务(azure data lake store),但是当用户尝试下载文件时,会向服务器发送请求,然后,服务器将向存储服务发送请求,文件传输将在服务器和存储服务之间开始,同时客户端将等待这两个服务之间的传输结束,这可能需要很长时间(下图中的步骤3),我想知道是否有一种方法可以同时从azure下载已经收集到的内容
这是我的密码:
@RequestMapping(value = "download", method = RequestMethod.GET, produces = "application/zip")
public ResponseEntity < Resource > download(@PathVariable String path) throws IOException {
InputStream stream = azureDataLakeStoreService.getFile(path);
InputStreamResource resource = new InputStreamResource(stream);
return ResponseEntity.ok()
.header(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, HttpHeaders.CONTENT_DISPOSITION)
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=download.zip")
.contentType(MediaType.parseMediaType("application/octet-stream"))
.body(resource);
}
共 (0) 个答案