2010-10-12 57 views
0

默認情況下,Django將圖片上傳到MEDIA_ROOT設置,該設置被假定爲可公開訪問的目錄。非公開圖片上傳

我不希望用戶能夠上傳圖像並讓這些圖像可以立即訪問。相反,我希望將圖像上傳到非公開的tmp目錄。稍後,網站管理員將在django-admin中批准圖像,並將其移至公共圖像目錄。

問題是,網站管理員需要能夠查看存儲在tmp目錄中的圖像以批准它們。因此,這些圖像需要從網絡服務器提供,但不能由不是管理員的用戶訪問。

我如何:

  1. 延長ImageField的存儲圖像比MEDIA_ROOT
  2. 以外的目錄保護暫定圖像,使它們只能由網站管理員可以看到它們得到批准之前?
+0

他們必須完全無法訪問或不太可能?使用散列可以減少沒有直接鏈接到圖像的任何人的可能性:http://example.com/images/aksljfklafhsdnfksnkaaljkhgkjaflkghafngaklnfv/image.jpg哪些管理員將獲得鏈接,用戶將只會得到一個鏈接,如果推測。 – OmerGertel 2010-10-12 08:19:18

回答

0

RE 2:完全保護它們上django的水平是不可能的,因爲靜態媒體由web服務器提供服務,繞過django的完全。 你可以做的是在你的媒體源中創建一個目錄/ private /並使用普通的apache方式保護它 - 例如.htaccess;

儘管之前提出的散列算法對我來說似乎是一個更好的方法。