Loading

Geomer@Blog:~$ _

Блог ленивого программиста


Приватные файлы в Django
2020-08-01T22:40:21.563092Z

Я столкнулся с проблемой приватности загружаемых файлов в django. Поиски на просторах необъятного привели к следующим результатам.

nginx config

server {
    listen      8000;
    server_name localhost;
    charset     utf-8;
    sendfile    on;

    # Protected media
    location /protected {
        internal;
        alias /path/to/dir/;
    }

    # Django static
    location /static {
        alias /path/to/dir/;
    }

    # All other requests.
    location / {
        uwsgi_pass  django;
    }
}

django file...

def serveMedia(request):
    if request.user.is_authenticated:
        url = request.path.replace('media', 'protected')
        response = HttpResponse('')
        response['X-Accel-Redirect'] = url
        response['Content-Type'] = ''
        return response
    raise Http404("Нет доступа")

urlpatterns += [
    re_path(r'media/.+', serveMedia)
]

Вот как то так, используйте и прощай головная боль

Оставить комментрий

Введите Email адрес, для публикации комантация
Ваш Коментрий