亚马逊s3分区文件的最佳实践

时间:2012-03-10 16:52:23

标签: filesystems amazon-s3

希望这是一个简单的问题 - 如果它已经被回答但是没有出现在搜索中,则道歉。

在S3上,最好将图像组织到较小的子目录中,还是只将它们保存在一个目录中?在典型的文件系统中,可以将目录中的图像命名为命名空间以提高性能。在一个目录中具有数千个图像的平面结构通常不能很好地执行。这是亚马逊S3的情况吗?

我可以将所有用户图像放入用户文件夹,将所有图像发布到帖子文件夹等。或者我可以将用户图像放入像users / {userId}这样的文件夹中,以避免在一个用户文件夹中存在数千张图像。 / p>

4 个答案:

答案 0 :(得分:10)

更新2018-07

在为您的用例设计分区方案时,不再需要考虑性能,有关详细信息,请参阅我的InfoQ摘要Amazon S3 Increases Request Rate Performance and Drops Randomized Prefix Requirement

  

Amazon Web Services(AWS)最近announced显着提高了S3请求率性能,并能够并行化请求以扩展到所需的吞吐量。值得注意的是,此性能提升还“删除了以前任意对随机化对象前缀的指导”,并允许在S3对象命名中使用“逻辑或顺序命名模式,而不会影响性能”。

更新2013-09

引用链接中的信息,仍然很大程度上 准确的已被更新的文档S3 Request Rate and Performance Considerations取代。


初步答案

这也是Amazon S3的一个问题,虽然仅针对重要的存储要求,但请参阅Amazon S3 Performance Tips & Tricks以获取详细解答,包括分区对象空间的策略。

答案 1 :(得分:0)

它值得考虑一个将其打包到文件上的方案......如果没有其他原因,只要有办法过滤你的文件,如果你想手动环顾四周。

但如果您确定需要共同访问文件的所有方式,请不要花费太多时间......您可以随时迁移到新方案。

答案 2 :(得分:0)

道歉,希望对您有帮助,

在AWS键名中,确定对象(文件)存储在哪个分区中-您可以在文件名中添加 hax前缀,以提高性能。

GET密集型工作负载:使用CloudFront

混合的工作负载(GET,PUT和DELETE)::在S3对象键名中使用hax前缀,以防止多个对象存储在同一分区上。

答案 3 :(得分:0)

以前的答案现在已过时 https://aws.amazon.com/about-aws/whats-new/2018/07/amazon-s3-announces-increased-request-rate-performance/ “此S3请求速率性能的提高消除了以前对随机化对象前缀以实现更快性能的任何指导。这意味着您现在可以在S3对象命名中使用逻辑或顺序命名模式,而不会影响性能。”