Amazon s3 我如何组织一百万个+;现在我';我要搬到亚马逊S3吗?

Amazon s3 我如何组织一百万个+;现在我';我要搬到亚马逊S3吗?,amazon-s3,Amazon S3,我正在从共享主机启动,我正在切换到VPS和Amazon S3的组合,以承载数百万JPEG 我最大的担忧是对所有这些图像保持某种理智。有希望吗?我的理解是,您只允许使用100个“bucket”,而“bucket”是S3中唯一的结构类型 将数百万个文件放入一个存储桶中是否是您的建议?您可能会注意到,其中指出: There is no limit to the number of objects that can be stored in a bucket 我的经验是,单个bucket中的大量对象不

我正在从共享主机启动,我正在切换到VPS和Amazon S3的组合,以承载数百万JPEG

我最大的担忧是对所有这些图像保持某种理智。有希望吗?我的理解是,您只允许使用100个“bucket”,而“bucket”是S3中唯一的结构类型

将数百万个文件放入一个存储桶中是否是您的建议?

您可能会注意到,其中指出:

There is no limit to the number of objects that can be stored in a bucket
我的经验是,单个bucket中的大量对象不会影响通过其键获取单个对象的性能(也就是说,get似乎具有恒定的复杂性)

也有大量的物体:

但是,我必须警告您,我使用过的大多数S3管理工具(如S3Fox)在试图访问包含大量对象的存储桶时都会窒息而死。一个似乎能很好地处理大量对象的工具是(它们有免费版和专业版,我与它们没有任何关系)


使用“文件夹”或前缀,不会改变任何一点(获取和列出给定数量的对象仍然是不变的,大多数工具仍然会自动崩溃和挂起)。

Ya you总结了我的感受,上传1000万个文件都很有趣,但一旦它们出现在那里,你就几乎永远被它们所困扰,因为它们没有故障,任何列表工具都无法处理这么大的列表。我们一定要看看S3浏览器。前缀/文件夹可能会有所帮助,但它们不会减少bucket中对象的数量。真正地这取决于你去实现另一种列表——通常在数据库中记录文件名/URL——并从中管理对象。是的,这就是我要做的。我只是讨厌这样的想法,如果我的代码中有一个bug,我最终不得不永远为它付费——从字面上说。我已经成功地使用s3cmd:来列出包含这些bug的bucket的内容100k的图像-直接从服务器运行,因此受益于快速网络连接,可以通过管道将输出传输到文件等。我的理解是S3散列对象键,因此给定对象的查找时间为O(1)。但是,调用与密钥前缀匹配的AmazonS3.listObjects的预期时间是多少?
AmazonS3.listObjects
的文档中说
一个bucket中的键总数不会对列表性能产生实质性影响。
但是,除非它们对键的前缀进行索引,否则这怎么可能呢?我请AWS工程师提供更多指导,他们回避了这个问题,只是说调用
listObjects
可能会很慢。我不知道它是否进行线性搜索-
List performance is not substantially affected by the total number of keys in your bucket