Запретить прямой доступ к медиафайлам в Django - PullRequest
0 голосов
/ 03 февраля 2020

Я добавил stati c path к своим URL-адресам (Django 2.2 и python 3.6.9),

static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

Однако я хотел бы предотвратить неаутентифицированные доступ к медиафайлам.

1 Ответ

1 голос
/ 03 февраля 2020

Вы можете 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}),
)

Лучшее решение будет использовать XSendfile из NGINX.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...