删除存储桶
您可以删除空的 Amazon S3 存储桶。在删除存储桶之前,请注意以下事项:
-
存储桶名称是唯一的。如果删除存储桶,则另一个 Amazon 用户可以使用该名称。
-
如果存储桶托管静态网站,并且您如 教程:使用注册到 Route 53 的自定义域配置静态网站 中所述创建并配置了 Amazon Route 53 托管区域,则必须清理与该存储桶相关的 Route 53 托管区域设置。有关更多信息,请参阅 步骤 2:删除 Route 53 托管区域。
-
如果该存储桶收到来自 Elastic Load Balancing(ELB)的日志数据:建议先停止将 ELB 日志传输到该存储桶,然后再删除该存储桶。删除该存储桶后,如果其他用户创建使用相同名称的存储桶,则日志数据可能会传输到此同名存储桶。有关 ELB 访问日志的信息,请参阅《经典负载均衡器用户指南》中的访问日志和《应用程序负载均衡器用户指南》中的访问日志。
故障排除
如果您无法删除 Amazon S3 存储桶,请考虑以下事项:
-
Make sure the bucket is empty(确保存储桶为空)— 您只能删除其中没有任何对象的存储桶。确保存储桶为空。
-
确保没有附加任何接入点 — 您只能删除其中没有任何接入点的存储桶。在删除存储桶之前,请删除附加到该存储桶的所有接入点。
-
Amazon Organizations 服务控制策略(SCP)– 服务控制策略可以拒绝对存储桶的删除权限。有关 SCP 的信息,请参阅《Amazon Organizations 用户指南》中的服务控制策略。
-
s3:DeleteBucket 权限 – 如果您无法删除存储桶,请与 IAM 管理员合作,确认您具有
s3:DeleteBucket
权限。有关如何查看或更新 IAM 权限的信息,请参阅《IAM 用户指南》中的更改 IAM 用户的权限。 -
s3:DeleteBucket 拒绝语句 — 如果您在 IAM 策略中拥有
s3:DeleteBucket
权限且无法删除存储桶,则存储桶策略可能包含s3:DeleteBucket
的拒绝语句。默认情况下,由 ElasticBeanstalk 创建的存储桶具有包含此语句的策略。您必须先删除此语句或存储桶策略,然后才能删除存储桶。
重要
存储桶名称是唯一的。如果删除存储桶,则另一个 Amazon 用户可以使用该名称。如果您希望继续使用相同的存储桶名称,请不要删除该存储桶。我们建议您,清空并保留存储桶。
删除 S3 存储桶
登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/
。 -
在 Buckets(存储桶)列表中,请选择要删除的存储桶名称旁边的选项,然后选择页面顶部的 Delete(删除)。
-
在 Delete bucket(删除存储桶)页面上,通过在文本字段中输入存储桶名称来确认要删除存储桶,然后选择 Delete bucket(删除存储桶)。
注意
如果存储桶包含任何对象,请在删除存储桶之前清空存储桶,具体操作如下:在 This bucket is not empty(此存储桶不为空)错误提醒中选择 empty bucket configuration(清空存储桶配置)链接,然后按照 Empty bucket(清空存储桶)页面上的说明操作。然后,返回到 Delete bucket(删除存储桶)页面并删除存储桶。
-
要验证您是否已删除存储桶,请打开 Buckets(存储桶)列表并输入您删除的存储桶的名称。如果无法找到此存储桶,则表示删除成功。
以下示例展示了如何使用适用于 Java 的 Amazon SDK 删除存储桶。首先,该代码将删除存储桶中的对象,然后删除存储桶。有关其他 Amazon SDK 的信息,请参阅用于 Amazon Web Services 的工具
如果存储桶没有启用版本控制,则可以使用 Amazon CLI 删除包含对象的存储桶。当您删除一个包含对象的存储桶时,该存储桶中的所有对象都将被永久删除,包括已转换为 S3 Glacier
存储类的对象。
如果存储桶未启用版本控制,则可将 rb
(删除存储桶)Amazon CLI命令和 --force
参数结合使用来删除存储桶及其中的所有对象。此命令将先删除所有对象,然后再删除存储桶。
如果启用了版本控制,则不会在此过程中删除版本控制对象,这将导致存储桶删除失败,因为存储桶不能为空。有关删除受版本控制的对象的更多信息,请参阅删除对象版本。
$
aws s3 rb s3://bucket-name --force
有关更多信息,请参阅《Amazon Command Line Interface 用户指南》中的将 Amazon Command Line Interface 与高级别 S3 命令结合使用。