清空存储桶 - Amazon Simple Storage Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

清空存储桶

您可以使用 Amazon S3 控制台、Amazon 开发工具包或 Amazon Command Line Interface (Amazon CLI) 清空存储桶的内容。清空存储桶时,您将删除所有对象,但会保留存储桶。清空存储桶的操作无法撤消。在清空已启用或暂停 S3 存储桶版本控制的存储桶时,存储桶中的所有对象的所有版本都将被删除。有关更多信息,请参阅 使用启用版本控制的存储桶中的对象

您还可以指定存储桶的生命周期配置以使对象过期,以便 Amazon S3 能删除这些对象。有关更多信息,请参阅 在存储桶上设置生命周期配置

Troubleshooting

当正在执行清空存储桶操作时添加到存储桶的对象可能被删除。为了防止在清空存储桶操作进行过程中向存储桶添加新对象,您可能需要阻止Amazon CloudTrail 跟踪将事件记录到存储桶。有关详细信息,请参阅《Amazon CloudTrail 用户指南》中的关闭跟踪的日志记录

防止将 CloudTrail 跟踪添加到存储桶中的另一种可选方法是,将 deny s3:PutObject 语句添加到存储桶策略中。若要在存储桶中存储新对象,则应从存储桶策略中删除 deny s3:PutObject 语句。有关更多信息,请参阅 IAM 用户指南中的 示例 — 对象操作IAM JSON 策略元素:效果

您可以使用 Amazon S3 控制台清空存储桶,这将删除存储桶中的所有对象,而不删除存储桶。

清空 S3 存储桶
  1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. Bucket name(存储桶名称)列表中,选择要清空的存储桶的名称旁边的选项,然后选择 Empty(清空)。

  3. Empty bucket (清空存储桶) 页面上,通过在文本字段中输入存储桶名称来确认要清空存储桶,然后选择 Empty (清空)

  4. Empty bucket: Status 页面上监控存储桶清空过程的进度。

仅在存储桶未启用存储桶版本控制时可使用 Amazon CLI 清空存储桶。如果未启用版本控制,您可以将 rm(删除)Amazon CLI 命令与 --recursive 参数结合使用来清空存储桶(或删除部分带特定键名前缀的对象)。

以下 rm 命令将删除拥有键名前缀 doc 的对象,例如,doc/doc1doc/doc2

$ aws s3 rm s3://bucket-name/doc --recursive

使用以下命令删除所有对象,而无需指定前缀。

$ aws s3 rm s3://bucket-name --recursive

有关更多信息,请参阅《Amazon Command Line Interface 用户指南》中的将 Amazon CLI 与高级别 S3 命令结合使用

注意

您无法从启用了版本控制的存储桶中删除对象。当您删除一个对象时(此命令将执行的操作),Amazon S3 将添加一个删除标记。有关 S3 存储桶版本控制的更多信息,请参阅在 S3 存储桶中使用版本控制

您可以使用 Amazon 开发工具包清空存储桶或删除部分拥有特定键名前缀的对象。

有关如何使用Amazon SDK for Java清空存储桶的示例,请参阅删除存储桶。该代码将删除所有对象(不论存储桶是否启用了版本控制),然后删除存储桶。要只清空存储桶,请确保删除用来删除存储桶的语句。

有关使用其他 Amazon 开发工具包的更多信息,请参阅用于 Amazon Web Services 的工具

如果使用生命周期策略清空存储桶,则生命周期策略应包括当前版本、非当前版本删除标记未完成的分段上传

您可以添加生命周期配置规则,以使所有对象或部分拥有特定键名前缀的对象过期。例如,要删除存储桶中的所有对象,您可以将生命周期规则设置为使对象在创建一天后过期。

Amazon S3 支持一个存储桶生命周期规则,您可以使用该规则停止未在启动后的指定天数内完成的分段上传。我们建议您配置此生命周期规则以最大限度地降低存储成本。有关更多信息,请参阅 配置存储桶生命周期策略以中止未完成的分段上传

有关使用生命周期配置清空存储桶的更多信息,请参阅在存储桶上设置生命周期配置即将过期的对象