猿问

如果用户未通过身份验证,如何限制NGINX提供媒体文件

在url中,我有一个指向serve_protected_file每次有人尝试访问媒体文件时打开的url


url(r'^%s(?P<path>.*)$' % settings.MEDIA_URL[1:], views.serve_protected_file, {'document_root': settings.MEDIA_ROOT})

在serve_protected_file这个样子的


def serve_protected_file(request, path, document_root=None, show_indexes=False):

    if request.user.is_authenticated:

        return serve(request, path, document_root, show_indexes)


    raise Http404()

这仅在开发环境中有效


当我部署时,文件与Nginx一起提供,它给我的文件看起来像是通过url


https://staging.mywebsite.com/media/img/531126758844.jpg

如何限制它,除非用户通过身份验证,否则我的媒体文件夹中的所有内容都是私有的,并且应该限制对文件的外部访问


我的staging.nginx.conf看起来像


location ~ ^/media.*?/(.*)$ {

    alias /data/www/staging/mywesite/media/$1;

    access_log off;

}


萧十郎
浏览 158回答 1
1回答

HUWWW

好吧,Eurica经过2个小时的头部撞击...由于媒体文件都是机密文件,因此我删除了media configurationin&nbsp;staging.nginx.conf,它像一个超级按钮一样工作。所以现在正在执行django视图...,nginx正在拦截django视图
随时随地看视频慕课网APP

相关分类

Python
我要回答