Django,向登录用户显示某些媒体目录
我有一个Django应用程序,用户可以下载分配给他们的文件。如何确保只有分配了该文件的用户才能下载该文件。因为它在媒体目录中,任何人都可以在那里浏览,所以有没有办法只让相关用户下载文件?我一年前也做过同样的事情。 我希望只有相关用户可以下载他们的照片:Django,向登录用户显示某些媒体目录,django,Django,我有一个Django应用程序,用户可以下载分配给他们的文件。如何确保只有分配了该文件的用户才能下载该文件。因为它在媒体目录中,任何人都可以在那里浏览,所以有没有办法只让相关用户下载文件?我一年前也做过同样的事情。 我希望只有相关用户可以下载他们的照片: # urls.py (r'^data/photos/(?P<path>.*)$','views.data_access'), 好的,等等,但我仍然可以浏览到/media/etc/etc/photos/并查看照片,任何用户都可以看到。
# urls.py
(r'^data/photos/(?P<path>.*)$','views.data_access'),
好的,等等,但我仍然可以浏览到/media/etc/etc/photos/并查看照片,任何用户都可以看到。我弄错了?比显式设置
403
@Harry:nope更清楚,我的项目中的/data是经典的/media。@rm。谢谢,我不知道。编辑了答案。
# view data_access(request, path)
# [...code...]
if user_can_download:
response = HttpResponse(mimetype="image/jpeg")
response['Content-Disposition'] = 'attachment; filename=%s' % unicode(photo.image.name)
response['X-Accel-Redirect'] = '/protected/'+ unicode(path)
return response
else:
return HttpResponseForbidden()