【问题标题】:Can I add permissions to media django media files?我可以为 media django 媒体文件添加权限吗?
【发布时间】:2016-11-25 13:56:52
【问题描述】:

我想构建一个应用并让用户观看一些视频,只要他们有权限或他们为该视频付费。我正在使用 Django,我想添加 ngnix 和 gunicorn 来提供媒体文件。 我不确定一旦用户拥有视频的网址,如果他的付款过期或他没有权限,我该如何阻止他看不到视频。现在我让 django 提供视频,我覆盖了服务器方法,如果他无权访问视频,我返回 404。

【问题讨论】:

  • 您应该让视图根据用户的权限动态地提供文件,而不是直接提供静态文件。
  • 你能给我一个简短的例子吗,我从来没有用过gunicorn和nginx,是我第一次设置生产。
  • @lonefaft 如果我按照你说的做,视频将来自 nginx 并将由 django 提供服务器,我可以让视频可搜索吗?因为现在我不能

标签: python django nginx gunicorn


【解决方案1】:

您需要实现所谓的“X-Sendfile 功能”。假设您的付费文件将从位置/protected/ 提供 - 您需要添加到 nginx 的配置中:

location /protected/ {
    internal;
    root   /some/path;
}

那么当您想为您的用户提供一个名为mycoolflix.mp4 的文件时,您的应用需要添加标题X-Accel-Redirect: /protected/mycoolflix.mp4,并且文件/some/path/protected/mycoolflix.mp4 将提供给用户。 nginx 文档herehere 中的更多信息。 从您的视图提供文件不是一个好主意 - 它会使您的 Django 进程之一忙,直到下载完成,从而阻止它处理其他请求。

【讨论】:

    猜你喜欢
    • 2022-01-20
    • 1970-01-01
    • 2014-10-20
    • 2023-04-08
    • 2017-08-07
    • 1970-01-01
    • 2016-04-16
    • 2018-01-28
    • 1970-01-01
    相关资源
    最近更新 更多