我有一个Django应用程序,用户可以下载分配给他们的文件。如何确保只有分配了该文件的用户才能下载该文件。因为它在媒体目录中,任何人都可以在那里浏览,所以有没有办法只让相关用户下载文件?
答案 0 :(得分:3)
一年前我做了同样的事情。 我只想让相关用户下载他们的照片:
# urls.py
(r'^data/photos/(?P<path>.*)$','views.data_access'),
我的观点'data_access'给出了照片,或者是403页
# 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()