2012-07-15 55 views
3

我有一个用Paperclip宝石的Rails 3应用程序。 其实,我的本地目录结构是基于我的纪录的UUID库存图片:迁移到Amazon S3 - 保留我的分层目录?

5D5E5641-FCE8-4D0B-A413-A9F993CD0E34 

变为:

5/D/5/E/5/6/....... 3/4/full/image.jpg 
5/D/5/E/5/6/....... 3/4/thumb/image.jpg 

,这样,我从来没有每个目录超过32000个节点。

我想迁移到S3: 1)我可以在S3上保留这个目录结构吗?这可能是一个性能问题? 2)亚马逊S3是否有自己的目录管理每桶?

谢谢。

回答

0

Amazon S3中没有这样的文件夹。这是一个“平面”文件系统。您可以越靠近文件夹,就像您所说的那样添加前缀:5/D/image.jpg到您的文件名。在这种情况下,5是前缀,而5/D也是前缀。另一方面,您的分隔符可能是/

即使几个S3工具会显示你的东西,就好像它们被包含在文件夹内一样,这个概念在S3上不存在。请参阅thisthis相关的主题。

你绝对可以使用你所建议的模式,我认为你不会因为这样做而遭受任何性能损失。

+0

谢谢Viccari! – 2012-07-16 16:33:25

+0

有人告诉我,使用分层结构会提高性能,因为在底层,有一个基于Unix的文件系统。所以,当你在文件名中使用斜线时,S3实际上将它存储在具有该路径的目录中。这样,你就避免了一个文件太多的目录。真的吗? – 2012-11-12 16:03:28

+2

@OtavioMacedo我不这么认为。在他们的文档中没有提及这种信息。另外,请看看http://stackoverflow.com/questions/394198/max-files-per-directory-in-s3 – Viccari 2012-11-12 17:29:51