版本为S3

时间:2016-01-08 21:16:25

标签: ruby amazon-s3 versioning

我正在尝试使用亚马逊S3版本。 所以我设法创建一个对象并显示版本并选择一个井Preci的版本。

但我阻止或它是用于文档版本控制的公开显示网址

s3 = Aws::S3::Client.new
prefix = "path/file"
obj = s3.list_object_versions(bucket: 'bucket', prefix: prefix)

我得到的版本,我想要的是公共网址

obj.versions.first

我找不到允许我拥有公共网址的方法

谢谢

2 个答案:

答案 0 :(得分:0)

Per the docsversion对象(即您obj.versions.first所获得的内容)具有version_id密钥。

您可以使用该ID获取该版本using REST - 只需在查询字符串中添加versionId=<THE_ID>即可。

但我不确定这是否属于公共网址。它可能需要您进行身份验证 - 我不认为将每个版本的对象公开访问是一个好主意,所以可能您不能。

答案 1 :(得分:0)

感谢您的回答, 实际上我的网址不安全,所以我使用了一个公共测试网址,但这不起作用,因为它说拒绝接入,但我加了他:

@bucket = Aws::S3::Bucket.new(BUCKET)
url = @bucket.object(name)
url.public_url(acl: 'public-read')

所以添加一个新的权限,我设法没有拒绝访问但现在他告诉我该文件还不好我使用public_url,

我忘记了什么?

@bucket = Aws::S3::Bucket.new(BUCKET)
url = @bucket.object(@name)
url.public_url