我想设置一个允许某些用户访问某些媒体的 Django 服务器。我相信这不会那么难,我只是有点傻。
例如,我希望 USER1 能够访问 JPEG1、JPEG2 和 JPEG3,但不能访问 JPEG4,而 USER2 能够访问 JPEG3 和 JPEG 4。
[我知道我应该因为使用 Django 提供媒体而被火烧死,但这就是我目前正在做的事情,当我开始真正使用汽油时,我会改变它。]
最佳答案
您可以通过在请求中返回文件来使用 django 发送文件,如 Vazquez-Abrams 链接所示。
但是,由于效率的原因,您可能最好在 apache 中使用 mod_xsendfile(或在 lighttpd 中使用类似设置)。 Django 发送它的速度没有那么快,一种方法是在保留使用开发服务器静态函数的选项的同时这样做是 http://pypi.python.org/pypi/django-xsendfile/1.0
至于哪些用户应该能够访问哪些 jpeg,您可能必须自己实现。一种简单的方法是为具有访问权限的用户创建一个具有多对多字段的图像模型,以及一个检查当前用户是否在这些用户中的函数。沿线的东西:
if image.users_with_access.filter(pk=request.user.id).exists():
return HttpResponse(image.get_file())
当然还有很多其他代码,仅作为示例。为此,我实际上在我自己的项目中使用了修改后的 mod_xsend。
关于django - 用于服务媒体的用户权限 Django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3292887/