使用Ruby写入AWS S3预签名URL

时间:2014-05-07 10:27:44

标签: ruby amazon-s3

我想使用预先签名的网址

将文件上传到S3

首先,我使用url_for(:write)

创建一个签名的URL
s3object = S3.buckets['myBucket'].objects['someFolder/testFile.txt']
url = s3object.url_for(:write) #

我按预期得到了网址。

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

但现在我想使用此网址上传内容 我假设有一种方法可以从该网址获取一个s3对象,我可以使用该对象来编写'方法

obj = getObjectFromUrl(url)

这样的东西

有这样的方法吗?

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

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

1 个答案:

答案 0 :(得分:1)

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

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