一种有效的方式来下载位于远程存储服务中的文件

时间:2018-11-16 15:21:54

标签: java optimization download

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

enter image description here

这是我的代码:

@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 个答案:

没有答案