如何配置Django和切諾基服務從切諾基媒體(用戶上傳)文件,但僅在登錄用戶登錄用戶只有在生產@login_required。如何使用切諾基服務Django媒體用戶上傳的文件限制登錄用戶
1
A
回答
0
我會當你正在使用切諾基
刪除與媒體URL爲localhost /媒體直接訪問媒體文件夾中回答我的問題
/..例如通過刪除它的虛擬主機
激活(檢查)允許X-Sendfile在處理程序選項卡通用CGI選項在處理Django請求的virtuelserver頁面中。
假設您有用戶圖片在媒體/圖片保護,只有所有用戶可見。 (可以根據需要只是一個爲例進行修改)
每個用戶的圖片存放在媒體/圖片/ pk.jpg(1.JPG,2.JPG ..)
創建視圖:
@login_required(redirect_field_name=None)
def media_pictures(request,pk):
response = HttpResponse()
path=os.path.join (settings.MEDIA_ROOT,'pictures',pk+'.jpg')
if os.path.isfile(path):
#response['Content-Type']="" # add it if it's not working without ^^
response['X-Accel-Redirect'] = path
#response['X-Sendfile'] = path # same as previous line,
# X-Accel-Redirect is for NGINX and X-Sendfile is for apache , in our case cherokee is compatible with two , use one of them.
return response
return HttpResponseForbidden()
切諾基現在照顧服務的文件,這就是爲什麼我們檢查了允許X-SENDFILE,這將不無這裏 路徑變量的工作是將文件的完整路徑,可以在任何地方,只要閱讀由切諾基用戶或組負責4.網址的conf 我們禁用Media文件夾的直接訪問,我們需要提供一個URL從Django中使用以前的觀點
爲爲例,爲了使用戶的圖像與ID爲17無障礙訪問
localhost/media/pictures/17。JPG
url(r"^media/pictures/(?P<pk>\d+)\.jpg$", views.media_pictures,name="media_pictures"),
這也將努力爲Apache,Nginx的等,只是將服務器配置爲使用X-SENDFILE(或X阿塞爾 - 重定向Nginx的),這可以很容易地在文檔中發現
用這種方法,每一個登錄的用戶可以查看所有用戶的照片,隨時服務於文件之前添加額外的驗證,每用戶檢查等
希望這將幫助別人
0
創建一個Django視圖該文件
-
服務器
使用
@login_required
這一觀點來限制訪問使用Python標準IO操作
使用從磁盤讀取的文件StreamingHttpResponse所以沒有延遲或內存開銷寫回應
設置響應的MIME類型正確
相關問題
- 1. 用戶權限Django服務媒體
- 2. 如何讓特定用戶上傳Django中的媒體文件
- 3. Wordpress上傳僅限於登錄用戶
- 4. 如何限制用戶訪問HTTP服務器上的文件?
- 5. 登錄用戶使用django
- 6. WordPresspress:基於登錄用戶在頁面上顯示媒體文件
- 7. 如何限制用戶無需登錄
- 8. 如何限制用戶登錄?
- 9. 如何讓我的網站用戶上傳媒體文件?
- 10. Django管理員 - 基於用戶登錄限制訪問對象
- 11. Django,顯示某些媒體目錄登錄用戶
- 12. 如何使用Django Tinymce filbrowser上傳媒體文件?
- 13. NATS流媒體服務器用戶速率限制和正好一次傳遞
- 14. Django的:服務用戶上傳的文件
- 15. 限制子目錄登錄用戶
- 16. cvs登錄問題 - 如何限制用戶從cvs登錄
- 17. ANDROID - 創造用戶/帳戶的服務器/服務的登錄權限
- 18. 限制用戶的多次登錄
- 19. 切換登錄/註銷的基礎上如果用戶已登錄
- 20. 如何在登錄標準用戶時切換bat文件中的用戶,然後在ssh上將其他用戶切換到linux服務器?
- 21. 用戶上傳的流媒體視頻文件
- 22. iOS - Dropbox上的文件(用戶登錄)
- 23. 如何限制使用WCF服務的用戶
- 24. 從社交媒體登錄創建流星用戶帳戶
- 25. 用戶登錄後使用服務檢查服務器更新
- 26. 用戶登錄時間限制
- 27. 限制登錄嘗試,無論用戶?
- 28. Django的 - 限制用戶的
- 29. Windows上的PHP:如何使用登錄用戶身份的Web服務?
- 30. 用戶無法上傳到Pythonanywhere的媒體目錄
是否會採用切諾基提供服務的文件這樣?我想使用login_required保護媒體目錄,但應該通過切諾基提供文件,因爲它更高效並推薦用於製作,現在已經爲靜態和媒體導演執行此操作,但目前沒有任何保護 – 2014-10-06 10:38:39
切諾基無法知道HTTP請求是否來自一個有效的登錄用戶或沒有。 – 2014-10-06 10:44:52
如果你想進一步優化輸出,你可以使用X-Send-File' HTTP Response頭。但是這需要來自Web服務器的特殊支持。 https://github.com/johnsensible/django-sendfile - 我建議做最簡單的解決方案,然後再做其他事情,如果你對性能不滿意。 – 2014-10-06 10:46:06