无法删除空S3 Bucket

时间:2017-01-23 17:18:18

标签: amazon-web-services amazon-s3 aws-cli

我有一个100%空的S3存储桶。从未在存储桶上启用版本控制。但是,我仍然无法删除桶。我通过Console和CLI工具尝试过。在控制台上它只是说“错误”没有错误消息。从cli和api中它告诉我:“调用DeleteBucket操作时发生错误(BucketNotEmpty):您尝试删除的存储桶不为空”。我尝试了以下所有方法:

aws s3 rm s3://<bucket_name> --recursive - &gt; BucketNotEmpty

aws s3api list-object-versions --bucket <bucket_name> - &gt;没有输出(因为它已经是空的)

aws s3api list-multipart-uploads --bucket <bucket_name> - &gt;没有输出(因为从未启用版本控制)

aws s3api list-objects --delimiter=/ --prefix= --bucket <bucket_name> - &gt;没有输出

<a href="edit.php"><?php echo $row['post_date']; ?></a> - &gt;没有输出(因为它是空的)

  • 它没有依赖关系(它不被cloudfront使用或我知道的任何其他内容)。
  • 水桶已经空了大约5天。
  • 我能够使用相同的IAM用户删除另一个非常相似的存储桶。此外,我的IAM用户具有管理员访问权限。

11 个答案:

答案 0 :(得分:58)

我遇到了同样的问题。我能够通过进入存储桶并删除&#34; Bucket Policy&#34;来解决问题。对于水桶。之后,删除存储桶工作正常。

我通过AWS控制台为Elastic Beanstalk创建的S3存储桶(即elasticbeanstalk-us-west-2-861587641234)执行了此操作。我想创建脚本包含一个策略来防止人们意外删除存储桶。

答案 1 :(得分:5)

我有一个类似的问题,能够在等待一夜后删除桶。 这是一个非常弱的解决方案,但可能会节省你和其他一些时间来砸它。

如果在评论中的所有操作之后仍然没有删除,那么只有AWS支持才能正确修复。再一个弱的答案,但是在AWS支持下注册一张票,然后在这里发布他们的回复作为其他人的答案。

答案 2 :(得分:3)

这对我有用。我没有在存储桶上启用版本控制。当您从s3存储桶中删除对象时,它会删除一个&#39;删除标记&#39;在该对象上并将其隐藏在列表中。点击&#39;显示&#39;版本按钮,您将看到删除标记的删除对象。选择此对象(使用删除标记)并再次删除。这是永久删除。现在你的对象真的消失了,你的桶真的是空的。在此之后,我能够删除我的桶。

我想,versioning = true只表示如果你使用相同的名称上传,s3将创建该对象的版本。

答案 3 :(得分:1)

有时在尝试删除存储桶后,实际上并未将其删除,但权限将丢失。

在我的情况下,我转到“权限”标签,重新授予自己权限,然后才能将其删除

答案 4 :(得分:1)

我遇到了同样的问题,并且没有政策,因此增加了我登录并保存的电子邮件的权限。授予自己权限后,我可以删除存储桶。我也有另一个具有策略的存储桶,因此我删除了该策略,也能够删除该存储桶。

答案 5 :(得分:0)

我向公众公开了s3存储桶的权限,并允许所有人访问。然后,我能够从AWS控制台删除存储桶。

答案 6 :(得分:0)

我正在使用AWS控制台执行存储桶的删除。

遇到了同样的问题,我尝试了上述所有解决方案,但对我不起作用,然后我想出了另一种方法。 ElasticBean使用了我的存储桶,每删除一个存储桶,ElasticBean都会自动创建一个存储桶。然后,我删除了ElasticBean服务,并尝试再次删除该存储桶,但这次再次无法使用,该存储桶为空,但不允许删除。 我试图更改权限,但存储桶仍然存在。

最后,我删除了存储桶策略,然后又回来删除了存储桶,它消失了。  问题解决了

答案 7 :(得分:0)

面向面临类似问题的用户。 我尝试了@Federico解决方案仍然没有成功。删除旁边还有另一个选项“空”。

因此,我先清空存储桶,然后尝试删除,此操作奏效了。

答案 8 :(得分:0)

要删除Elastic Beanstalk存储桶(控制台)

1. Open the Amazon S3 Management Console
2. Select the Elastic Beanstalk storage bucket.
3. Choose Properties.
4. Choose Permissions.
5. Choose Edit Bucket Policy - Allow to delete and make it public.
6. Save.
7. Choose Actions and then choose Delete Bucket.
8, Type the name of the bucket and then choose Delete.

答案 9 :(得分:0)

我遇到了同样的问题,经过一番研究,我必须先删除存储桶策略,然后再删除存储桶。

enter image description here

答案 10 :(得分:-3)

我试图查看提到的许多解决方案。唯一对我有用的是通过Cyber​​duck删除它(我既不为它工作,也不在提倡Cyber​​duck,我确实使用过它并且起作用了)。这是我所做的步骤:

1-下载并安装Cyber​​duck。

2-单击打开连接

3-从下拉列表中选择Amazon S3(默认为FTP)

4-输入访问密钥ID和秘密访问密钥(如果没有,则需要通过AWS上的IAM在s3存储桶中创建一个)

5-您将看到S3存储桶的列表。选择要删除的文件或文件夹或存储桶,右键单击并删除。甚至0kb的文件也会显示在此处,可以删除。

希望这会有所帮助