2010-09-12 19 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