Php AmazonAWSS3目录结构效率

Php AmazonAWSS3目录结构效率,php,amazon-web-services,amazon-s3,Php,Amazon Web Services,Amazon S3,我脑子里有一个简单的效率问题 我创建了一个PHP代码,可以将文件夹中的所有文件上传到AmazonS3上的bucket中。我的代码也能够在不丢失其结构的情况下上传子文件中的文件 基本上,用户必须登录到我的网站,然后根据用户的帐户名,他们可以将照片上传到AmazonS3上的我的存储桶中。用户最多可以上载10张照片-然后将这些照片修改为子文件类型,例如修改和缩略图 如何在AmazonS3上高效地上传目录结构 选项1(文件位于同一存储桶中,但文件夹不同-更有组织性) 或 选项2(同一存储桶中的所有文件)

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

我创建了一个PHP代码,可以将文件夹中的所有文件上传到AmazonS3上的bucket中。我的代码也能够在不丢失其结构的情况下上传子文件中的文件

基本上,用户必须登录到我的网站,然后根据用户的帐户名,他们可以将照片上传到AmazonS3上的我的存储桶中。用户最多可以上载10张照片-然后将这些照片修改为子文件类型,例如修改和缩略图

如何在AmazonS3上高效地上传目录结构

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

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


或者它在AmazonS3中没有任何不同吗?

它在AmazonS3中没有任何不同。只有对象键。

对于组织目的来说,S3文件夹并没有什么区别,S3文件夹实际上只是一种幻觉,对我们这样的人来说,它似乎很熟悉——实际上没有像您自己的机器上那样物理上独立的文件夹

但是,一旦达到某一点,您使用的命名约定将对性能产生巨大的影响(对于少量文件,可能不会引起注意)

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

从马(AWS)的嘴上看:

键名称中的序列模式引入了性能问题。为了理解这个问题,让我们看看AmazonS3是如何存储的 关键名称

AmazonS3维护每个AWS区域中的对象键名称索引。 对象键按字典顺序存储在中的多个分区中 索引。也就是说,AmazonS3按字母顺序存储键名。 密钥名称指示密钥存储在哪个分区中。使用 顺序前缀,如时间戳或字母顺序, 增加Amazon S3针对特定目标的可能性 为大量密钥分区,压倒I/O 分区的容量。如果你在你的生活中引入了一些随机性 密钥名称前缀、密钥名称以及I/O负载将 分布在多个分区上

如果您预计您的工作量将持续超过100 每秒请求数时,应避免连续的密钥名。如果你 必须在键名称中使用序列号或日期和时间模式, 向密钥名称添加随机前缀。前缀的随机性更大 在多个索引分区中均匀分布键名。 本主题后面将提供引入随机性的示例


那么结构就不会有什么不同了?我有这样的印象。我可能错了,如果它们在同一个文件夹中,加载速度会更快。显然,如果它们位于不同的文件夹中,它们会更有条理。S3根本不理解目录的概念,它是一个平面文件系统。如果你关心的是性能,那就看看我到底在找什么。非常感谢。
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
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