清空存储桶
您可以使用 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 存储桶
登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/
。 -
在 Bucket name(存储桶名称)列表中,选择要清空的存储桶的名称旁边的选项,然后选择 Empty(清空)。
-
在 Empty bucket (清空存储桶) 页面上,通过在文本字段中输入存储桶名称来确认要清空存储桶,然后选择 Empty (清空)。
-
在 Empty bucket: Status 页面上监控存储桶清空过程的进度。
仅在存储桶未启用存储桶版本控制时可使用 Amazon CLI 清空存储桶。如果未启用版本控制,您可以将 rm
(删除)Amazon CLI 命令与 --recursive
参数结合使用来清空存储桶(或删除部分带特定键名前缀的对象)。
以下 rm
命令将删除拥有键名前缀 doc
的对象,例如,doc/doc1
和 doc/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 支持一个存储桶生命周期规则,您可以使用该规则停止未在启动后的指定天数内完成的分段上传。我们建议您配置此生命周期规则以最大限度地降低存储成本。有关更多信息,请参阅 配置存储桶生命周期策略以中止未完成的分段上传。
有关使用生命周期配置清空存储桶的更多信息,请参阅在存储桶上设置生命周期配置和即将过期的对象。