2010-09-12 69 views
0

我想弄清楚布局我的目录结构的最佳方式,以便我可以以与数据库结合使用时可扩展的方式存储来自多个用户的图像。数据库将存储每个图像的绝对路径。可扩展的布局,用于存储和显示用户上传的图像

因此,让我们假设我正在处理用户的个人资料图像,每个用户的个人资料图像都会具有不同大小的缩略图。下面的结构是否足够:

/profile_images 
    /user_1 
     /image_a 
     image_a.jpg 
     image_a_small.jpg 
     image_a_tiny.jpg 
     /image_b 
     image_b.jpg 
     image_b_small.jpg 
     image_b_tiny.jpg 
    /user_2 
     ... 
    /user_3 
     ... 

所以我的问题是这样的做法是否会好。如果没有,请问有人可以提出一个更好的方法,使用数据库和文件系统来管理图片上传。 谢谢

回答

1

您的布局似乎足以应用程序期望中等数量的用户和图像。

这就是说,该溶液可以证明是不够的一次以下因素在起作用:

  1. 用户图像组合的数量变大。
  2. 您的用户遍布全球。
  3. 您需要对图像进行版本控制。
  4. 您发现托管图像需要大量带宽。

在这种情况下,您可能需要考虑使用诸如Amazon S3之类的简单内容或使用完整的内容交付网络(CDN)在外部存储和提供这些图像。

我相信有几个插件可用来支持S3存储,而且不会大惊小怪。 S3Storage就是这样一个(警告:我使用S3但不是S3Storage)。

希望这会有所帮助。

+0

感谢您回复Manoj。问题是我确实需要一个大型的用户图像组合和大量的流量。即使使用S3,我也需要知道如何组织桶,以便随着用户群的增长,它不会变得太复杂。我知道Twitter使用S3,并试图对他们的图片进行反向工程,试图找出他们如何完成这一壮举。如果您有更多建议,我想阅读它们。 – Kevin 2010-10-09 19:05:07

相关问题