use*_*207 11 php amazon-s3 amazon-web-services
我有一个简单的效率问题,贯穿我的脑海.
我创建了一个PHP代码,将我文件夹中的所有文件上传到Amazon S3上的存储桶.我的代码也能够在不丢失其结构的情况下上传子文件中的文件.
基本上,用户必须登录我的网站,然后根据用户的帐户名称,他们可以将照片上传到Amazon s3上的我的存储桶.用户最多可以上传10张照片 - 然后将这些照片修改为子文件类型,例如修改和缩略图.
我应该如何上传我的目录结构才能在Amazon S3上高效?
选项1(同一桶中的文件但不同的文件夹 - 更有条理)
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
Run Code Online (Sandbox Code Playgroud)
要么
选项2(同一桶中的所有文件)
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
Run Code Online (Sandbox Code Playgroud)
或者它在Amazon S3中没有任何不同?
E.J*_*nan 20
它对于组织目的没有任何影响,S3文件夹实际上只是为了像我们这样的人类的利益的幻觉,所以它似乎很熟悉 - 在你自己的机器上确实没有物理上独立的文件夹.
但是,一旦达到某一点(对于少量文件,它可能不会引人注意),您使用的命名约定将对性能产生巨大影响.
通常,您希望文件/文件夹名称的开头部分为"random-ish",越随机越好......这样s3可以更好地分散工作负载.如果名称前缀完全相同,则会存在潜在的瓶颈.每个文件名开头的短随机哈希可能会给你最好的表现.
马(AWS)口:
键名中的序列模式引入了性能问题.为了解这个问题,我们来看看Amazon S3如何存储密钥名称.
Amazon S3在每个AWS区域中维护对象键名称的索引.对象键以字典方式存储在索引中的多个分区中.也就是说,Amazon S3按字母顺序存储键名.密钥名称指示密钥存储在哪个分区中.使用顺序前缀(例如时间戳或字母顺序)会增加Amazon S3针对大量密钥的特定分区的可能性,从而压倒I/O容量分区.如果在密钥名称前缀中引入一些随机性,则密钥名称以及I/O负载将分布在多个分区中.
如果您预计您的工作负载将始终超过每秒100个请求,则应避免使用顺序密钥名称.如果必须在密钥名称中使用序列号或日期和时间模式,请在密钥名称中添加随机前缀.前缀的随机性更均匀地在多个索引分区之间分配密钥名称.本主题后面将提供引入随机性的示例.
http://docs.aws.amazon.com/AmazonS3/latest/dev/request-rate-perf-considerations.html
归档时间: |
|
查看次数: |
4163 次 |
最近记录: |