gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 05:08:03 27 4
gpt4 key购买 nike

如果我有一百万张图像,将它们存储在某个文件夹/子文件夹层次结构中还是直接将它们全部转储到存储桶中(不带任何文件夹)会更好吗?

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

动态创建文件夹和子文件夹并设置其 ACL(从编程角度来说)是否会产生大量开销?

最佳答案

S3 不尊重分层命名空间。每个存储桶仅包含许多从键到对象的映射(以及关联的元数据、ACL 等)。

即使对象的键可能包含“/”,S3 也会将路径视为纯字符串并将所有对象放入平面命名空间中。

根据我的经验,随着对象数量的增加,LIST 操作确实需要(线性)更长的时间,但这可能是 Amazon 服务器上以及到客户端的 I/O 所需增加的症状。

然而,查找时间似乎并没有随着对象数量的增加而增加 - 它很可能是某种 O(1) 哈希表实现 - 因此在同一个存储桶中拥有许多对象应该与正常情况下的小存储桶一样具有性能用法(即不是列表)。

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

我建议将其分成单独的桶:

  • 完全不同的内容 - 为图像、声音和其他数据设置单独的存储桶,从而打造更加稳健的架构
  • 显着不同的 ACL - 如果您可以拥有一个存储桶,其中每个对象接收特定的 ACL,或者拥有两个具有不同 ACL 且没有特定于对象的 ACL 的存储桶,则采用这两个存储桶。

关于performance - S3 中每个目录的最大文件数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/394198/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com