发现delete_marker的替代品?同时将aws-sdk gem升级到版本2

时间:2016-05-02 20:32:26

标签: ruby-on-rails ruby amazon-web-services aws-sdk

我一直在尝试从'aws-sdk-v1'升级到'aws-sdk'(aws sdk版本2的宝石)。 对于版本1,此代码块有效:

AWS::S3.new.buckets['bucket-name'].versions.each do |version|
  if version.delete_marker?
    version.delete
  end
end

对于sdk的第2版,我找不到等同于delete_marker?

的内容
Aws::S3::Resource.new.bucket('bucket-name').object_versions.each do |version|
  if version.SOMETHING_ELSE
    version.delete
  end
end

另请注意,对于版本2,我将versions切换为object_versions,我认为是正确的更改。

2 个答案:

答案 0 :(得分:1)

我在CHANGELOG

中挖掘宝石时发现了这一点
  

功能 - Aws :: S3 - ·您现在可以使用Expired对象删除   标记过期策略以自动删除当前版本   当对象的先前版本不再存在时删除标记。

所以我怀疑在v2中有delete_marker?替代

有关详细信息,请参阅HERE

答案 1 :(得分:0)

由于缺乏更好的程序化解决方案,我最终选择version.class == Aws::S3::Types::DeleteMarkerEntry