如何使用AWS SDK从S3下载对象--RESTful。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用AWS SDK从S3下载对象--RESTful。相关的知识,希望对你有一定的参考价值。

我正在寻找一种程序化的方式来下载S3桶中的图片到我的电脑上。

我试过"使用send_file从Amazon S3下载文件?",但它只是将我重定向到一个只显示我的PDF对象的链接。

这是我的下载函数,使用 AWS文档:

s3 = Aws::S3::Resource.new(region: 'us-east-2')
obj = s3.bucket('bucket').object('image')
obj.get(response_target: '~/')

这是我从链接上下载的代码。

data = open("https://#{bucket}.s3.amazonaws.com/#{filepath}")
send_data data.read, filename: "file.pdf", type: "application/pdf", disposition: 'inline', stream: 'true', buffer_size: '4096'

obj.get 是什么让我困惑。 我想把它下载到我的电脑上,而不是我的代码库。

有人说,下载链接只是我的代码库的图片链接,如果它被设置为公共的,它是。这到底是怎么回事?

最终的解决方案。改成 "附件

data = open("https://#{bucket}.s3.amazonaws.com/#{filepath}")
send_data data.read, filename: "file.pdf", type: "application/pdf", disposition: 'attachment', stream: 'true', buffer_size: '4096'
答案

如果你将处置改为 attachment 浏览器能否下载文件?

这可能与内容处置内联值有关。

你检查过这个问题吗?https:/superuser.comquestions1277819why-does-chrome-sometimes-download-a-pdf-instead-of-opening-it?

以上是关于如何使用AWS SDK从S3下载对象--RESTful。的主要内容,如果未能解决你的问题,请参考以下文章

如何使用aws java sdk将文件从S3存储桶从一个区域复制到另一个区域?

如何使用 AWS 开发工具包从 S3 下载对象 - RESTful

如何使用scala和aws-java-sdk从S3存储桶中获取所有S3ObjectSummary?

如何使用 aws-sdk 获取 AWS S3 上文件的 URL?

如何使用 aws-java-sdk 从 S3 逐块读取文件

如何通过 aws Java SDK 公开 S3 对象?