【问题标题】:I want to serve static files with permissions logic in my django project我想在我的 django 项目中提供具有权限逻辑的静态文件
【发布时间】:2020-04-22 05:55:21
【问题描述】:

所以我一直在做一个 django 项目。它是一个市场平台(两种用户 - 买家和卖家),当卖家为买家上传文件时,只有这两个用户才能访问上传的文件。我试图弄清楚如何使用这些权限提供静态文件。

我不确定这是否相关,但我正在使用 nginx 来提供静态文件,那么有没有办法在 django 中添加权限逻辑来提供这些静态文件?

【问题讨论】:

  • 如果您需要添加这种逻辑,您必须通过 Django 而不是 Nginx 提供文件。您使用的是哪个文件存储后端?
  • 如果我通过 Django 提供这些文件会不会导致性能问题?事实上,性能是我想使用 nginx 的全部原因。我还没有更改存储后端,所以它是 Django 提供的默认存储后端。
  • 您可能会考虑对媒体文件使用子请求身份验证docs.nginx.com/nginx/admin-guide/security-controls/…。您必须向您的应用添加一个视图,以验证用户是否有权访问他们请求的文件

标签: django


【解决方案1】:

首先是一些 Django 术语:您不是在谈论“静态文件”(这些是 CSS、js、图像和其他资源,它们是您源代码的一部分),而是关于“媒体文件”(用户上传的内容) .

现在获取技术答案:use nginx's X-Accel-Redirect feature。这将权限验证委托给您的 Django 应用程序,但仍然让 nginx 自己提供文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-10
    • 2017-10-28
    • 1970-01-01
    相关资源
    最近更新 更多