簡體   English   中英

防止直接訪問 Django 中的媒體文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM