如何使用生命周期配置规则清空 Amazon S3 桶?

2 分钟阅读
0

我的一个 Amazon Simple Storage Service(Amazon S3)桶存储了数百万个对象。我想使用生命周期配置规则来清空桶,这样我就无需支付存储费用。

解决方法

**重要信息:**以下解决方案会永久删除您的 Amazon S3 桶中的所有数据。由于您无法恢复数据,因此请在删除前检查存储桶中的所有对象和数据。

要使用生命周期配置规则清空存储桶,请使用控制台或 CLI。

使用控制台

您可以在控制台中创建生命周期配置规则,将对象的当前版本设为过期并永久删除对象的先前版本。要创建规则,请完成以下步骤:

  1. 打开 Amazon S3 控制台
  2. 从桶列表中,选择要清空的桶。
  3. 选择管理选项卡。
  4. 选择创建生命周期规则
  5. 生命周期规则名称中,输入规则名称。
  6. 选择规则范围中,选择应用于桶中的所有对象
  7. 选择我确认此规则将应用于桶中的所有对象
  8. 对于 Lifecycle rule actions(生命周期规则操作),选择以下选项: Expire current versions of objects(将对象的当前版本设为过期)Permanently delete noncurrent versions of objects(永久删除对象的非当前版本)Delete expired object delete markers or incomplete multipart uploads(删除过期的对象删除标记或未完成的分段上传)
  9. Expire current versions of objects(将对象的当前版本设为过期)字段中,对于 Days after object creation(创建对象以来的天数)字段,输入 1
  10. 永久删除非当前版本的对象字段中,在对象变为非当前对象以来的天数字段中输入 1
  11. 将**要保留的较新版本的数量(可选)**字段留空以删除所有版本。
  12. 选择删除未完成的分段上传,然后在天数字段中输入 1
  13. 选择创建规则
  14. 要创建第二条生命周期规则,请重复步骤 4-7。
  15. 选择以下选项: 删除过期的对象删除标记或未完成的分段上传
  16. 选择删除过期的对象删除标记
  17. 选择创建规则

Amazon S3 每天运行一次生命周期规则。在 Amazon S3 首次运行规则后,所有符合过期条件的对象都将被标记为删除。您无需为标记为删除的对象付费。

Amazon S3 异步将对象版本设为过期并移除删除标记。规则可能需要运行几天才能清空桶。有关在 Amazon S3 中异步删除对象的详细信息,请参阅即将过期的对象

使用 CLI

您可以使用 AWS 命令行界面 (AWS CLI),通过以下步骤创建生命周期规则以清空您的 S3 存储桶

  1. 使用您的 JSON 内容创建文件(例如 lifecycle-rules.json)。

JSON 示例:

{
  "Rules": [{
      "Expiration": {
        "Days": 1
      },
      "ID": "FullDelete",
      "Filter": {
        "Prefix": ""
      },
      "Status": "Enabled",
      "NoncurrentVersionExpiration": {
        "NoncurrentDays": 1
      },
      "AbortIncompleteMultipartUpload": {
        "DaysAfterInitiation": 1
      }
    },
    {
      "Expiration": {
        "ExpiredObjectDeleteMarker": true
      },
      "ID": "DeleteMarkers",
      "Filter": {
        "Prefix": ""
      },
      "Status": "Enabled"
    }
  ]
}
  1. 在 AWS CLI 命令中使用 JSON 文件:
aws s3api put-bucket-lifecycle-configuration --bucket delete-marker-testing-demo --lifecycle-configuration file://lifecycle-rules.json

注意: 您可以添加前缀以仅在前缀级别应用规则,例如:

"Filter": {
  "Prefix": "folder1/"
},

相关信息

在启用了版本控制的存储桶中移除到期对象删除标记

管理对象的生命周期

我如何删除 Amazon S3 对象和存储桶?

删除存储桶

在存储桶上设置 S3 生命周期配置

AWS 官方
AWS 官方已更新 5 个月前