gpt4 book ai didi

java - Amazon S3 在客户端位置下载文件

转载 作者:行者123 更新时间:2023-12-02 11:14:42 24 4
gpt4 key购买 nike

我有一个从 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 和 Spring Boot

我尝试在网上搜索并在stakeoverflow上找到了各种解决方案。但是,这些解决方案没有帮助:

Download file from Amazon S3 using REST API

Javascript to download a file from amazon s3 bucket?

download a file to particular location in client system

最佳答案

浏览器处理下载。我给你举个例子。当你有 html 说

<!-- Browser will download the file to user configured location instead of opening -->
<a href="http://example.org/mypdf.pdf" download>Download PDF</a>

而不是使用 anchor 标记来下载。您可以通过以下流程在收到请求时触发下载。

  1. 使用内容处置生成预签名网址
  2. 重定向到该网址

使用内容处置生成 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,并让浏览器处理下载。

希望有帮助。

关于java - Amazon S3 在客户端位置下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50371807/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com