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

Mar*_*arc 15 filesystems amazon-s3

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

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

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

Ste*_*pel 13

更新2018-07

在为您的用例设计分区方案时,不再需要考虑性能,请参阅我的InfoQ摘要Amazon S3提高请求率性能并删除随机前缀要求以获取详细信息:

亚马逊网络服务(AWS)最近宣布显着提高S3请求率性能,并能够并行化请求以扩展到所需的吞吐量.值得注意的是,这种性能提升还"删除了随机化对象前缀的任何先前指导",并允许在S3对象命名中使用"逻辑或顺序命名模式,而不会产生任何性能影响".

更新2013-09

参考链接中的信息虽然仍然很准确,但已被更新的文档S3请求率和性能注意事项所取代.


初步答复

这也是Amazon S3的一个问题,尽管只是为了满足大量存储需求,请参阅Amazon S3性能提示和技巧,获取详细解答,包括分区对象空间的策略.

  • 我只想补充一下,第一个链接的提示现在已经过时了,您可能希望将其添加到您的答案中:https://aws.amazon.com/about-aws/whats-new/2018/07/amazon -s3-announces-requested-rate-performance /“此S3请求速率性能的提高消除了以前对随机化对象前缀以实现更快性能的任何指导。这意味着您现在可以在S3对象命名中使用逻辑或顺序命名模式而无需任何操作性能影响。” (2认同)