检索S3对象的所有版本

时间:2017-01-06 01:23:54

标签: ruby amazon-web-services amazon-s3 aws-sdk

我希望从适用于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

我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

我认为你是正确的,V2 API中缺少此功能。我相信您唯一的选择是bucket.object_versionsclient.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是它自己的子资源,而且对象不具备任何知识他们自己的版本历史。