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

清空存储桶

您可以使用 Amazon S3 控制台、Amazon SDK 或 Amazon Command Line Interface(Amazon CLI)清空存储桶的内容。清空存储桶时,您将删除所有对象,但会保留存储桶。清空存储桶的操作无法撤消。当正在执行清空存储桶操作时添加到存储桶的对象可能被删除。必须先删除存储桶中的所有对象(包括所有对象版本和删除标记),然后才能删除存储桶本身。

在清空已启用或暂停 S3 版本控制的存储桶时,存储桶中的所有对象的所有版本都将被删除。有关更多信息,请参阅使用启用版本控制的存储桶中的对象

您还可以指定存储桶的生命周期配置以使对象过期,以便 Amazon S3 能删除这些对象。有关更多信息,请参阅在存储桶上设置生命周期配置。要清空大型存储桶,我们建议您使用 S3 生命周期配置规则。生命周期到期是一个异步过程,因此规则可能需要花数天时间运行,然后才能清空存储桶。在 Amazon S3 首次运行该规则后,所有符合过期条件的对象都将被标记为删除。您不再为那些标记为删除的对象付费。有关更多信息,请参阅如何使用生命周期配置规则清空 Amazon S3 存储桶?

您可以使用 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. 清空桶:状态页面上监控桶清空过程的进度。

仅在存储桶未启用存储桶版本控制时可使用 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 SDK 清空存储桶或删除部分拥有特定键名前缀的对象。

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

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

要清空大型存储桶,我们建议您使用 S3 生命周期配置规则。生命周期到期是一个异步过程,因此规则可能需要花数天时间运行,然后才能清空存储桶。在 Amazon S3 首次运行该规则后,所有符合过期条件的对象都将被标记为删除。您不再为那些标记为删除的对象付费。有关更多信息,请参阅如何使用生命周期配置规则清空 Amazon S3 存储桶?

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

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

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

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

清空已配置 Amazon CloudTrail 的存储桶

Amazon CloudTrail 跟踪 Amazon S3 存储桶中的对象级数据事件,例如删除对象。如果您使用存储桶作为记录 CloudTrail 事件的目标并从同一个存储桶中删除对象,则在清空存储桶的同时可能正在创建新对象。为了防止这种情况,请停止 Amazon CloudTrail 跟踪。有关让 CloudTrail 跟踪停止记录事件的更多信息,请参阅《Amazon CloudTrail 用户指南》中的关闭跟踪的日志记录

停止将 CloudTrail 跟踪添加到存储桶中的另一种备选方法是:将 s3:PutObject 语句添加到存储桶策略中。如果您想稍后在存储桶中存储新对象,则需要删除此拒绝 s3:PutObject 语句。有关更多信息,请参阅《IAM 用户指南》中的 对象操作IAM JSON 策略元素:效果