删除具有数千个文件/密钥的Amazon AWS S3存储桶

是否有一种简单的方法来删除一个Amazon S3存储桶,其中有成千上万的对象? 我已经尝试了s3cmd – recursion和–force,但它记忆膨胀,并已经运行了几天没有什么效果。

删除具有数千或数百万个项目的Amazon S3存储桶的新答案是使用新的对象过期规则

您甚至可以从AWS控制台执行此操作。 只需转到要删除的存储桶的属性,打开“LifeCycle”选项卡并设置一个新的过期规则,并且前缀不超过1天即可过期。 等一天,对象将被删除。 如果您拥有数百万美元(就像我的情况一样),您可能需要几天的时间才能将这些物品全部消失,但是,您将很高兴地注意到,您在24小时到期之后不再为这些存储的物品付款。

注意:此方法的唯一限制是,如果启用了版本控制,则无法设置生命周期规则。

对象过期

亚马逊最近添加了一个新function,“多对象删除”,允许多达1000个对象一次删除一个API请求。 这应该允许简化从桶中删除大量文件的过程。

新function的文档可以在这里find: http : //docs.amazonwebservices.com/AmazonS3/latest/API/index.html?multiobjectdeleteapi.html

现在,您必须手动使用该API作为请求,但我希望像s3cmd这样的工具最终将被更新为直接支持该function。

使用--delete标志将空目录同步到存储桶。

 mkdir tmp-empty-dir aws s3 sync --delete tmp-empty-dir/ s3://my-bucket 

那么存储桶将是空的,可以删除。

我使用这个Java Applet来做到这一点。 您可以轻松select所有文件并删除它们。