为什么即使拥有全部权限或根权限,我也无法通过 Amazon S3 控制台或 AWS CLI 删除我的 S3 桶?

1 分钟阅读
0

我想使用 Amazon Simple Storage Service(Amazon S3)控制台或 AWS 命令行界面(AWS CLI)删除 Amazon S3 桶。我拥有该桶的全部权限或根权限,但是我的删除请求失败了,桶仍然可用。

简述

如果 S3 桶包含大量对象,那么您将无法在 Amazon S3 控制台中删除该桶。如果带有版本控制的 S3 桶包含对象或对象版本,那么您将无法使用 AWS CLI 删除该桶。有关详细信息,请参阅删除桶

**注意:**如果在运行 AWS CLI 命令时收到错误,请确保您使用的是最新的 AWS CLI 版本

要删除一个 S3 桶,请先暂停版本控制(如果您之前已启用此功能)。然后,创建生命周期规则,使桶中的对象在一天后过期。在您删除所有对象后,就可以删除这个桶了。

解决方案

**警告:**以下过程将永久删除您的 S3 桶中的所有数据。从桶中删除数据后,您将无法恢复这些数据。在继续操作之前,请检查桶中的所有对象和数据,确定您已不再需要它们。

要暂停版本控制,然后创建生命周期规则以删除桶中的对象,请执行以下步骤:

  1. 打开 Amazon S3 控制台
  2. 选择要删除的桶。
  3. 如果您为桶开启了版本控制,请暂停版本控制
  4. 选择管理选项卡。
  5. 生命周期规则下,选择创建生命周期规则
  6. 在生命周期规则名称中,输入生命周期规则的名称。
  7. 要在整个桶上运行该规则,请选择此规则适用于桶中的所有对象。要在某个前缀上运行规则,请选择使用一个或多个过滤器限制此规则的范围。然后,在前缀下输入前缀名称。
  8. 生命周期规则操作下,选择以下选项:
    将对象的当前版本设为过期
    永久删除对象的先前版本
    删除过期的删除标记对象或未完成的分段上传
  9. 对于将对象的当前版本设为过期,在创建对象以来的天数下输入 1
  10. 对于永久删除对象的先前版本,在对象变为先前版本以来的天数下输入 1
  11. 对于删除过期的删除标记对象或未完成的分段上传,请选择删除未完成的分段上传。然后,输入 1 以指定天数
  12. 选择创建规则

**注意:**即使您收到“This rule has prefix(es) that are overlapping with (previous_rule_name)”的错误消息,您仍然可以保存该规则。

生命周期规则在午夜(世界标准时间,UTC)前后运行。生命周期规则运行后,系统不会立即删除对象,但生命周期规则会将其标记为删除。标记为删除的对象不会产生账单费用。有关更多信息,请参阅即将过期的对象

如果桶中有大量对象,则在 Amazon S3 控制台中,这些对象可能会继续显示几天。带有版本控制的 Amazon S3 桶更有可能出现此情况。如果桶具有版本控制,则 Amazon S3 会在删除对象的当前版本后创建删除标记。删除标记至少存在一天后,生命周期规则才会清理删除标记。因此,生命周期规则可能需要几天时间才能检测到删除标记并将其删除。

在生命周期规则完全删除所有对象(包括删除标记和任何非当前版本对象)后,您就可以删除这个桶了。

相关信息

管理存储生命周期

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