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