当前位置:  开发笔记 > 编程语言 > 正文

S3中每个目录的最大文件数

如何解决《S3中每个目录的最大文件数》经验,为你挑选了2个好方法。

如果我有一百万张图片,最好将它们存储在某个文件夹/子文件夹层次结构中,或者直接将它们全部转储到存储桶中(没有任何文件夹)?

将所有图像转储到无层次结构的存储桶中会减慢LIST操作的速度吗?

是否有动态创建文件夹和子文件夹并设置其ACL(以编程方式说)的巨大开销?



1> James Brady..:

S3不尊重分层命名空间.每个桶只包含从密钥到对象的多个映射(以及相关的元数据,ACL等).

即使对象的键可能包含'/',S3也会将路径视为普通字符串,并将所有对象放在平面命名空间中.

根据我的经验,随着对象数量的增加,LIST操作确实会(线性地)延长,但这可能是亚马逊服务器所需的I/O增加以及客户端连接的一个症状.

但是,查找时间似乎并没有随着对象数量的增加而增加 - 它最有可能是它们端的某种O(1)哈希表实现 - 因此在同一个桶中有许多对象应该与正常使用的小桶一样高效(即不是列表).

对于ACL,可以在存储桶和每个单独的对象上设置授权.由于没有等级,他们只是你的两个选择.显然,如果你有数百万个文件,设置尽可能多的桶范围授权将大大减少你的管理麻烦,但是记住你只能授予权限,而不是撤销它们,因此桶范围的授权应该是所有ACL的最大子集它的内容.

我建议拆分成单独的桶:

完全不同的内容 - 为图像,声音和其他数据提供单独的存储桶,使结构更加理智

显着不同的ACL - 如果您可以有一个存储桶,每个对象接收一个特定的ACL,或者两个存储桶具有不同的ACL且没有特定于对象的ACL,请使用两个存储桶.


@mwm你错了."文件夹"严格按照您正在使用的工具提供的UI细节.詹姆斯是正确的,键可能有斜线,但s3根本不关心 - 它绝对不会将它们视为文件夹.

2> Vacilando..:

回答原始问题"S3中每个目录的最大文件数"是:UNLIMITED.另请参阅S3对存储桶中对象的限制.

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有