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

清空存储桶

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

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