所以我知道这是一个常见问题,但似乎没有任何好的答案。
我有一个带有 gobs(我不知道有多少)文件的桶。它们都在2k以内。
1)我如何弄清楚我有多少这些文件而不列出它们?我使用了 s3cmd.rb、aws/s3 和 jets3t 的东西,我能找到的最好的方法是计算前 1000 条记录的命令(真正对它们执行GETS)。
我也一直在使用 jets3t 的小程序,因为它非常好用,但即使我无法列出所有对象,因为我的堆空间用完了。(大概是因为它正在对所有这些执行GETS并将它们保存在内存中)
2)我怎样才能删除一个桶?我见过的最好的事情是并行删除循环,它有问题,有时它会尝试删除同一个文件。这就是我遇到的所有“删除所有”命令的作用。
你们那些吹嘘托管数百万张图片/txt的人做了什么?当你想删除它时会发生什么?
3)最后,是否有其他答案?所有这些文件都是 txt/xml 文件,所以我什至不确定 S3 是否值得关注——也许我应该将其移至各种文档数据库?
归结为,亚马逊 S3 API 直接缺少 2 个非常重要的操作—— COUNT 和 DEL_BUCKET。(实际上有一个删除桶命令,但它只在桶为空时才有效)如果有人想出一种不糟糕的方法来执行这两个操作,我很乐意放弃很多赏金。
更新
只是为了回答几个问题。我问这个的原因是我在过去一年左右一直在存储数十万,更像是数百万个 2k txt 和 xml 文档。上一次,几个月前,我希望删除它确实需要 DAYS 天才能删除的存储桶,因为存储桶必须是空的,然后才能删除它。在没有 API 支持的情况下,我担心再次这样做是一件非常痛苦的事情。
更新
这把房子震撼了!
http://github.com/SFEley/s3nuke/
我在几分钟内就获得了价值 1-2k 文件的好几场演出。