跳至内容

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

2 分钟阅读
0

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

解决方案

**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI

**注意:**本生命周期配置指南仅适用于通用的 Amazon S3 存储桶。目录存储桶具有不同的生命周期管理要求。表存储桶不支持生命周期配置规则。

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

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

使用控制台

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

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

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

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

使用 AWS CLI

您可以使用 AWS CLI 创建生命周期规则来清空 S3 存储桶。完成以下步骤:

  1. 使用您的 JSON 内容创建文件(例如 lifecycle-rules.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"  
        }  
      ]  
    }
  2. 运行 put-bucket-lifecycle-configuration 命令以创建或更新您的生命周期配置。以下命令使用名为 lifecycle-rules.json 的 JSON 文件:

    aws s3api put-bucket-lifecycle-configuration --bucket delete-marker-testing-demo --lifecycle-configuration file://lifecycle-rules.json

注意: 您可以向 JSON 内容添加前缀筛选器,以便仅在前缀级别应用规则。以下是命令示例:

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

相关信息

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

管理对象的生命周期

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

删除通用存储桶

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

AWS 官方已更新 6 个月前