【问题标题】:How to download objects from S3 using AWS SDK - RESTful如何使用 AWS 开发工具包从 S3 下载对象 - RESTful
【发布时间】:2020-08-05 17:56:34
【问题描述】:

我正在寻找一种以编程方式将图像从 S3 存储桶下载到我的计算机的方法。

我尝试了“Using send_file to download a file from Amazon S3?”,但它只是将我重定向到一个仅显示我的 PDF 对象的链接。

这是我使用AWS documentation的下载功能:

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'

【问题讨论】:

标签: ruby-on-rails ruby amazon-web-services amazon-s3


【解决方案1】:

如果将配置更改为attachment浏览器下载文件?

这可能与 content-disposition 内联值有关。

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

【讨论】:

  • 请不要在回答中提问;而是在评论中询问。答案不应该激发对话,而是提供解决方案。此外,如果您怀疑解决方案在另一个问题或不同的站点中,那么您应该分别将该问题标记为重复或离题。
  • 漂亮的回答我的朋友。这是我第一次完全使用 S3……我遵循了一些指南,但想远离客户。现在效果很好。附加工作代码以回答。
猜你喜欢
  • 2020-06-05
  • 2021-12-09
  • 1970-01-01
  • 2011-11-10
  • 1970-01-01
  • 2020-01-30
  • 1970-01-01
  • 1970-01-01
  • 2023-03-15
相关资源
最近更新 更多