我正在尝试使用亚马逊S3版本。 所以我设法创建一个对象并显示版本并选择一个井Preci的版本。
但我阻止或它是用于文档版本控制的公开显示网址
s3 = Aws::S3::Client.new
prefix = "path/file"
obj = s3.list_object_versions(bucket: 'bucket', prefix: prefix)
我得到的版本,我想要的是公共网址
obj.versions.first
我找不到允许我拥有公共网址的方法
谢谢
答案 0 :(得分:0)
Per the docs,version
对象(即您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