用于存储和显示用户上传图像的可伸缩布局

时间:2010-09-12 19:21:03

标签: database django image file-upload twitter

我正在尝试找出布局目录结构的最佳方法,以便我可以以与数据库结合使用时可扩展的方式存储来自多个用户的图像。数据库将存储每个图像的绝对路径。

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

/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 个答案:

答案 0 :(得分:1)

对于期望中等数量的用户和图片的应用程序,您的布局似乎已足够。

尽管如此,一旦以下因素发挥作用,解决方案可能证明不足:

  1. 用户图像组合的数量变大。
  2. 您的用户遍布全球。
  3. 您需要对图像进行版本控制。
  4. 您发现托管图片需要花费大量带宽。
  5. 在这种情况下,您可能希望使用简单的Amazon S3或使用完整的内容传送网络(CDN)来查看在外部存储和提供这些图像。

    我相信有几个插件可用于支持S3存储,而且操作极少。 S3Storage就是这样(警告:我使用过的是S3而不是S3Storage)。

    希望这有帮助。