[英]Prevent direct access to media files in Django
我為我的 url 添加了靜態路徑(Django 2.2 和 python 3.6.9),
static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
但是,我想防止未經身份驗證訪問媒體文件。
您可以讓 django 為媒體文件提供服務,但這並不高效。
來自這篇博文:
from django.conf.urls import patterns, include, url
from django.contrib.auth.decorators import login_required
from django.views.static import serve
from django.conf import settings
@login_required
def protected_serve(request, path, document_root=None, show_indexes=False):
return serve(request, path, document_root, show_indexes)
urlpatterns = patterns('',
url(r'^%s(?P<path>.*)$' % settings.MEDIA_URL[1:], protected_serve, {'document_root': settings.MEDIA_ROOT}),
)
更好的解決方案是使用NGINX的 XSendfile。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.