我的应用程序从AWS S3存储桶下载文件。我使用下面的代码:
public void downloadFileFromS3(String key) throws IOException, InterruptedException{
LOG.info("Start - downloadFileFromS3 for key: {} and bucket name: {}", key, bucketName);
initAWS();
final GetObjectRequest request = new GetObjectRequest(bucketName, key);
Download download = transferMgr.download(request, new File("D:\\rohit\\"+key));
download.waitForCompletion();
}
现在,我们看到客户端的文件目标路径被硬编码为 D:\ rohit 。但是,在用户点击下载文件选项的实际应用程序中,该文件将直接下载到客户端的下载文件夹中。
有人可以帮我解决文件目的地路径问题。我正在使用 Java&春季启动。
我尝试在网上搜索,并找到了有关利益流量的各种解决方案。但是,解决方案没有帮助:
Download file from Amazon S3 using REST API
答案 0 :(得分:0)
浏览器处理下载。我举个例子。当你有html说
<!-- Browser will download the file to user configured location instead of opening -->
<a href="http://example.org/mypdf.pdf" download>Download PDF</a>
而不是使用锚标签下载。您可以在以下流程收到请求时触发下载。
使用内容处理生成S3预先指定的URL。
GeneratePresignedUrlRequest req = new GeneratePresignedUrlRequest(bucketName, key);
ResponseHeaderOverrides overrides = new ResponseHeaderOverrides();
overrides.setContentDisposition("attachment; filename=\"give file name how you want your client to save\"");
req.setResponseHeaders(overrides);
URL url = this.client.generatePresignedUrl(req);
现在将您的用户重定向到您生成的url
,并让浏览器处理下载。
希望它有所帮助。