首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Amazon S3目录结构效率

Amazon S3目录结构效率
EN

Stack Overflow用户
提问于 2014-03-04 08:58:20
回答 2查看 7.4K关注 0票数 12

我脑子里有一个简单的效率问题。

我已经创建了一个PHP代码,它可以将文件夹中的所有文件上传到亚马逊S3上的桶中。我的代码也可以上传子文件中的文件,而不会失去它的结构。

基本上,用户必须登录到我的网站,然后根据用户的帐户名称,他们可以上传照片到我的桶亚马逊s3。用户可以上传多达10张照片,然后修改成子文件类型,例如修改和缩略图。

我应该如何在亚马逊S3上上传我的目录以提高效率呢?

选项1(文件位于同一个桶中,但文件夹不同-更有组织)

代码语言:javascript
复制
username/originalfiles/picture01.jpg
username/original/picture02.jpg
username/original/picture03.jpg
....
username/original/picture10.jpg


username/modifiedpicture01.jpg
username/modified/picture02.jpg
username/modified/picture03.jpg
....
username/modified/picture10.jpg


username/thumbailspicture01.jpg
username/thumbails/picture02.jpg
username/thumbails/picture03.jpg
....
username/thumbails/picture10.jpg

选项2(同一桶中的所有文件)

代码语言:javascript
复制
username-original-picture01.jpg
username-original-picture02.jpg
username-original-picture03.jpg
....
username-original-picture10.jpg


username-modifiedpicture01.jpg
username-modified-picture02.jpg
username-modified-picture03.jpg
....
username-modified-picture10.jpg


username-thumbailspicture01.jpg
username-thumbails-picture02.jpg
username-thumbails-picture03.jpg
....
username-thumbails-picture10.jpg

或者它在亚马逊的S3中没有什么不同吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-04 13:56:54

对于组织而言,这并没有什么不同,S3文件夹实际上只是对像我们这样的人的一种幻觉,所以看起来很熟悉--实际上没有像您自己的机器上有这样的物理独立的文件夹。

然而,您使用的命名约定将对性能产生巨大的影响,一旦您到达某个点(对于少量的文件,它可能不会被注意到)。

通常,您希望文件/文件夹名称的开头部分是“随机的-ish”,s3可以更好地分散工作负载的s3越随机。如果名称前缀都是相同的,就会出现潜在的瓶颈。每个文件名开头的一个简短的随机散列可能会给您最好的性能。

从马的嘴里说:

键名中的序列模式带来了性能问题。为了理解这个问题,让我们看看Amazon如何存储密钥名。 Amazon在每个S3区域都维护一个对象密钥名索引。对象键按字典顺序存储在索引中的多个分区中。也就是说,亚马逊S3按字母顺序存储密钥名。键名指示密钥存储在哪个分区中。使用顺序前缀,如时间戳或字母顺序,增加了亚马逊S3针对大量密钥的特定分区的可能性,从而使分区的I/O能力不堪重负。如果您在密钥名前缀中引入了一些随机性,则键名以及I/O加载将分布在多个分区中。 如果您预期工作负载将始终超过每秒100个请求,则应避免顺序键名。如果必须在密钥名中使用序列号或日期和时间模式,则在密钥名称中添加一个随机前缀。前缀的随机性更均匀地分布在多个索引分区之间。在本主题后面将提供引入随机性的示例。

http://docs.aws.amazon.com/AmazonS3/latest/dev/request-rate-perf-considerations.html

票数 27
EN

Stack Overflow用户

发布于 2014-03-04 11:46:36

这在亚马逊的S3上并没有什么不同。只有目标键。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22167125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档