【问题标题】:Do we need directory structure logic for storing millions of images on Amazon S3/Cloudfront?我们是否需要目录结构逻辑来在 Amazon S3/Cloudfront 上存储数百万张图像?
【发布时间】:2013-10-23 12:35:06
【问题描述】:

为了支持数以百万计的潜在图像,我们之前采用了这种目录结构:

/profile/avatars/44/f2/47/48px/44f247d4e3f646c66d4d0337c6d415eb.jpg

文件名是 md5 散列,然后我们提取字符串中的前 6 个字符并从中构建文件夹结构。

所以在上面的例子中文件名:

44f247d4e3f646c66d4d0337c6d415eb.jpg

产生一个目录结构:

/44/f2/47/

我们一直这样做是为了尽量减少单个目录中的照片数量,最终提高文件系统性能。

但是我们的新应用将 Amazon S3 与 Cloudfront 结合使用

我的理解是,您在 Amazon S3 上创建的任何文件夹实际上只是引用,而不是文件系统上的目录。

如果正确,是否仍建议拆分为上述文件夹/目录或类似方法?或者我们可以简单地在我们的应用程序代码中消除这种复杂性,并提供像这样的图像链接:

/profile/avatars/48px/filename.jpg

请记住,此应用旨在提供数十万张照片。

任何指导将不胜感激。

【问题讨论】:

    标签: amazon-web-services amazon-s3 amazon-cloudfront


    【解决方案1】:

    虽然 S3 文件夹基本上只是另一种编写密钥名称的方式(正如 @E.J.Brennan 在他的回答中已经说过的那样),但有理由考虑“文件夹”的命名结构。

    根据您当前的照片数量和可能的访问模式,考虑一种加快 S3 键名查找速度的方法可能是有意义的,以确保对照片的操作分布在多个分区上。有一个great article on the AWS blog 解释了所有细节。

    【讨论】:

    • 通读那篇文章后,我意识到其中发布的建议比 E.J. 更能回答我的问题。布伦南自己回答。因此,我将答案重新授予了自己。希望他不会介意:) 再次感谢!
    • 这令人印象深刻,非常感谢您的分享。顺便说一句,他们将文章移动并更新为a separate documentation page
    【解决方案2】:

    您不需要在 s3 上设置该结构,除非您是为了自己的方便而这样做。您在 s3 上创建的所有文件夹对您来说实际上只是一种错觉,文件存储在一个连续的大容器中,因此如果您没有理由将文件组织在伪文件夹层次结构中,那么不要麻烦。

    如果您需要根据您的文件夹结构控制对不同人群的访问,这可能是保留该结构的原因,但除此之外可能没有任何好处/

    【讨论】:

      猜你喜欢
      • 2013-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-18
      • 2018-06-12
      • 2013-08-29
      • 1970-01-01
      相关资源
      最近更新 更多