gpt4 book ai didi

django - 在 Django 站点中保护静态媒体访问

转载 作者:行者123 更新时间:2023-12-03 20:48:14 31 4
gpt4 key购买 nike

我正在建立一个注册用户可以上传文件的网站。然后通过 Apache 提供这些文件。只有登录的用户才能访问这些文件。

我已阅读 this page但似乎人们必须登录两次才能访问网站和媒体,每次都使用不同类型的登录框。

有没有办法解决这个问题,或者是否有其他方法可以限制对 Apache 使用 Django 身份验证数据库提供的静态媒体的访问?

我正在使用 mod_python。

编辑 : 在阅读了 Van Gale 的回答和 this 之后,我是如何解决这个问题的:

  • 切换到 WSGI。
  • 已安装 mod_xsendfile
  • 将所有公共(public)媒体文件移动到/media/public
  • 中的子文件夹中
  • 使用别名/media/public/var/www.../media/public
  • 添加了对公用文件夹的访问权限
  • 添加了 WSGIScriptAlias/media/protected//var/www.../apache/django.wsgi(与站点其余部分相同的处理程序)
  • 添加了 XSendFile On 和 XSendFileAllowAbove On
  • 在 Django 应用程序中,我为/media/protected 添加了一个 urlconf,它基本上是 here ,仅针对我的身份验证系统进行了修改。它处理诸如/media/protected/GROUP_ID/file 之类的 url,以便只有 GROUP 的成员才能下载文件。
  • 最佳答案

    执行此操作的常用方法是将特殊 header 传回 Web 服务器。

    您可以使用 nginxDjango snippet 中使用 x-accel-redirect .

    对于 Apache,使用 mod_xsendfile 应该非常相似。模块(discussion and examples 在 Django 用户邮件列表中)。

    关于django - 在 Django 站点中保护静态媒体访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1340776/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com