在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;
}
答案 0 :(得分:0)
好吧,Eurica经过两个小时的头部撞击...
由于媒体文件都是机密文件,因此我刚刚删除了media configuration
中的staging.nginx.conf
,它的作用就像一个超级按钮
所以现在正在执行django视图...,nginx正在拦截django视图