ruby - 使用 Ruby 写入 AWS S3 预签名 url

标签 ruby amazon-s3

我想使用预签名的 url 将文件上传到 S3

首先我使用 url_for(:write) 创建一个签名 url

s3object = S3.buckets['myBucket'].objects['someFolder/testFile.txt']
url = s3object.url_for(:write) #

我得到了预期的 url。

https://s3.amazonaws.com/myBucket/someFolder/testFile.txt?AWSAccessKeyId=AKJFGKJASGK......

但是现在我想使用这个 url 上传一些东西 我假设有一种方法可以从该 url 获取 s3 对象,我可以在该 url 上使用“write”方法。

类似obj = getObjectFromUrl(url)

有这样的方法吗?

如果没有,我应该如何使用此 url 将内容上传到 s3?

编辑:我可能应该解释一下。 我创建 URL 是为了测试。 当我处理它时,我将只有 URL。 仅使用 URL,我将不得不上传一个文件。

最佳答案

根据当前适用于 Ruby 的 AWS SDK 文档,建议的方法是简单地在您的 s3 对象上调用 read。如果你已经有了 s3 对象,你应该能够直接从对象本身读取。此外,如果您希望流式传输读取的文件,还有一种流式下载方法。 AWS S3 Object Documentation

obj.write('abc')
puts obj.read
#=> abc

关于ruby - 使用 Ruby 写入 AWS S3 预签名 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23515255/

相关文章:

ruby - Ruby 中绑定(bind)/解除绑定(bind)方法的目的是什么?

ruby-on-rails - 关于使用 ruby​​ 代码的 http POST api 调用的问题

ruby - 理解两个和 leetcode 问题(Ruby)

ruby - 为什么单个空数组的并行赋值会分配多个nil?

amazon-web-services - Jupyter notebook、pyspark、hadoop-aws 问题

asp.net - 在.Net中使用Minio从S3存储桶获取对象列表

javascript - 如何在 Javascript 中访问 Ruby session 变量

amazon-web-services - 从 EC2 读取 S3 存储桶以进行 ML 训练

amazon-s3 - 有没有办法为由 kinesis firehose 保存到 s3 的文件指定文件扩展名

ruby-on-rails - 使用 Fog 和 Carrierwave 上传文件的粒度 'public' 设置