我创建了一个Java应用程序来存储和下载大文件,因此,当客户端上传文件时,它将被传输到服务器,该服务器会将其发送到存储云服务(蔚蓝数据湖存储),但是当用户尝试下载文件后,请求将发送到服务器,然后服务器将请求发送到存储服务,文件的传输将在服务器和存储服务之间开始,同时客户端将等待这两者之间的传输。结束,这可能要花很长时间(波纹管图像中的第3步),我想知道是否有一种方法可以同时下载从天蓝色采集的数据?
这是我的代码:
@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);
}