如何删除/计算s3存储桶中的对象?

eyb*_*erg 9 list amazon-s3 bucket

所以我知道这是一个常见的问题,但似乎没有任何好的答案.

我有一个带有gobs的桶(我不知道有多少)其中的文件数量.它们都在2k以内.

1)如何确定我有多少这些文件而不列出它们?我已经使用了s3cmd.rb,aws/s3和jets3t的东西,我能找到的最好的是一个计算前1000条记录的命令(真正对它们执行GETS).

我一直在使用jets3t的applet,因为它非常适合使用,但即使我无法列出我的所有对象,因为我的堆空间用完了.(可能是因为它正在对所有这些进行GETS并将它们留在记忆中)

2)我怎样才能删除一个桶?我见过的最好的事情是一个并行的删除循环,这有问题,因为有时它会尝试删除相同的文件.这就是我遇到的所有'deleteall'命令.

那些曾经吹嘘自己拥有数百万张图片/ txts的人呢?如果要删除它会发生什么?

3)最后,是否有替代答案?所有这些文件都是txt/xml文件所以我甚至不确定S3是如此关注 - 也许我应该把它移到一个文档数据库中?

它归结为亚马逊S3 API直接缺少2个非常重要的操作 - COUNT和DEL_BUCKET.(实际上有一个删除存储桶命令,但只有当存储桶为空时它才有效)如果有人提出了一个方法,这个方法并不吸引我做这两个操作,我很乐意放弃许多赏金.

UPDATE

只是回答几个问题.我问这个的原因是我在过去一年左右的时间里已经存储了数十万,更像是数百万的2k txt和xml文档.几个月前的最后一次,我希望删除它确实需要DAYS这样做的存储桶,因为存储桶必须是空的才能删除它.这是一个如此痛苦的屁股,我担心在没有API支持的情况下再次这样做.

UPDATE

这晃动了房子!

http://github.com/SFEley/s3nuke/

我在几分钟内就完成了一对价值1-2k档的好几场演出.

sgm*_*ore 1

我肯定不是那些“吹嘘托管数百万张图像/文本的人”之一,因为我只有几千张,这可能不是您正在寻找的答案,但我看了一会儿后退。

据我所知,有一个名为 HEAD 的 API 命令,它获取有关对象的信息,而不是像 GET 那样检索完整的对象,这可能有助于对对象进行计数。

至于删除Buckets,当时我看的时候,API明确规定Bucket必须是空的,所以你需要先删除所有的对象。

但是,我从未使用过这些命令中的任何一个,因为我使用 S3 作为备份,最后我编写了一些例程将我想要的文件上传到 S3(以便该部分是自动化的),但从未关心恢复/等式的删除/文件管理方面。为此,请使用 Bucket Explorer,它满足了我的所有需求。就我而言,花 50 美元就能得到一个可以满足我所有需求的程序,这是不值得的。可能还有其他人做同样的事情(例如 CloudBerry)

在您的情况下,使用 Bucket Explorer,您可以右键单击存储桶并选择删除,或者右键单击并选择属性,它将计算对象的数量及其占用的大小。它当然不会下载整个对象。(例如,我查看的最后一个存储桶大小为 12GB,大约有 500 个文件,下载 12GB 需要几个小时,而大小和计数会在一两秒内返回)。如果有限制的话,那肯定不是1000。

希望这可以帮助。