【问题标题】:Remove unintentionally created object versions in S3删除 S3 中无意创建的对象版本
【发布时间】:2021-03-23 22:54:32
【问题描述】:

我已将存储桶中所有对象的存储类型从 S3-Standard 更改为 S3-INT,但不知道版本控制已打开。

现在,对于 S3-INT 中的每个对象,我为 S3 标准中的每个对象都有一个旧版本,这实际上使我的 S3 成本翻了一番。

以下是控制台中对象版本的示例:

有没有办法通过控制台、CLI 或 python SDK立即删除旧版本?

我一直在阅读文档,我可以使用生命周期策略来做到这一点。但是如果我理解正确的话,这至少会在第二天删除它们?

【问题讨论】:

    标签: amazon-web-services amazon-s3 boto3


    【解决方案1】:

    您必须编写脚本或其他东西来查询所有文件和这些文件的所有版本,并为以前的版本发出删除命令。执行此操作的唯一自动化内置方法是生命周期规则。

    【讨论】:

      【解决方案2】:

      我不完全确定为什么您的版本 ID 为空。无论如何,您都可以使用 AWS CLI 删除对象的特定版本。

      V1

      aws s3 delete-object --bucket my_bucket --key object_key --version-id version_to_delete 
      

      V2

      aws s3api delete-object --bucket my_bucket --key object_key --version-id version_to_delete 
      

      对于 aws cli,请参阅参考 herehere,对于 boto3,请参阅 here。如果您使用的是 boto3,则可以迭代对象的版本并迭代删除它们。

      【讨论】:

      • 也许您可以添加适用于 CLI 版本 1.x - 版本为 2.x 的调用更改为 aws s3api delete-object
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-30
      • 1970-01-01
      • 2020-10-24
      • 2018-02-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多