我希望从适用于Ruby的AWS开发工具包的版本1转移到版本2.但是我遇到了S3对象版本控制的问题。
如果在API的第1版中引用了S3对象,则可以检索该对象的所有版本:http://docs.aws.amazon.com/AWSRubySDK/latest/AWS/S3/S3Object.html#versions-instance_method
然而,API的第2版似乎没有复制此功能:http://docs.aws.amazon.com/sdkforruby/api/Aws/S3/Object.html
我错过了什么吗?
答案 0 :(得分:1)
我认为你是正确的,V2 API中缺少此功能。我相信您唯一的选择是bucket.object_versions
或client.list_object_versions
。
您可以从存储桶中检索S3对象的所有版本,如下所示:
# Retrieve Collection<ObjectVersion>
Aws::S3::Bucket.new('bucket-name')
.object_versions(prefix: 'object-key')
.reject { |version| version.key != 'object-key' }
我猜测 Ruby SDK已经做了这个更改以更好地反映S3 REST API,其中versions是它自己的子资源,而且对象不具备任何知识他们自己的版本历史。