保护 Django 站点中的静态媒体访问

2024-04-04

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

我读过了这一页 http://docs.djangoproject.com/en/dev/howto/apache-auth/但人们似乎必须登录两次才能访问网站和媒体,每次使用不同类型的登录框。

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

我正在使用 mod_python。

EDIT:在阅读范盖尔的答案后我是如何解决这个问题的this http://groups.google.com/group/django-users/browse_thread/thread/b4ceae1956e003e5/:

  1. 切换到 WSGI。
  2. 已安装mod_x发送文件 http://tn123.ath.cx/mod_xsendfile/
  3. 将所有公共媒体文件移至 /media/public 中的子文件夹中
  4. 添加了使用别名 /media/public /var/www.../media/public 对公共文件夹的访问
  5. 添加了 WSGIScriptAlias /media/protected/ /var/www.../apache/django.wsgi (与站点其余部分相同的处理程序)
  6. 添加了 XSendFile On 和 XSendFileAllowAbove On
  7. 在 Django 应用程序中,我为 /media/protected 添加了一个 urlconf,它的作用基本上是这样的here http://groups.google.com/group/django-users/msg/f15c3de2417b120e,仅针对我的身份验证系统进行修改。它处理 /media/protected/GROUP_ID/file 等 url,以便只有 GROUP 的成员才能下载文件。

通常的方法是将一个特殊的标头传回 Web 服务器。

你可以这样做nginx http://wiki.nginx.org/NginxXSendfile使用 x-accel-redirect 如下所示Django 片段 http://www.djangosnippets.org/snippets/491/.

对于 Apache,它应该非常相似,使用mod_x发送文件 http://tn123.ath.cx/mod_xsendfile/模块 (讨论和例子 http://groups.google.com/group/django-developers/browse_thread/thread/297cbd7dec84ffb8在 Django 用户邮件列表中)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

保护 Django 站点中的静态媒体访问 的相关文章

随机推荐

  • 如何在 Bash 脚本中从一系列 _# 文件名中选择最大数字

    我有一个包含文件的目录 heat1 conf heat2 conf heat
  • Silverlight 4 和浏览器外

    有谁知道是否可以对 app current mainwindow width 进行动画处理 以便在以编程方式调整 oob 应用程序窗口大小时获得一个带有缓动的漂亮动画 谢谢 最简单的方法是向页面添加滑块控件 滑块可以折叠 仅用于具有简单的动
  • VBA 自函数返回#VALUE!单元格出错,而在函数窗口中正确返回实际值

    我在下面写的函数是采用一个范围 我对其进行了一些条件格式设置 用于字体颜色 以及另一个用于比较颜色的单元格范围 功能是统计大范围内有多少个单元格与一个单元格范围具有相同的字体颜色 Function CountColor rng As Ran
  • 在logstash中使用docker GELF驱动程序env/labels

    Docker GELF 日志驱动程序允许env and labels日志选项 gelf 日志记录驱动程序支持 lab els 和 env 选项 它添加了额外的密钥extra字段 以下划线 为前缀 ref https docs docker
  • 分配给 Rails ActiveRecord 中的布尔字段时,值如何转换?

    我的问题的简短版本 在 Rails ActiveRecord 中 如果我有一个布尔字段并且我给它分配类似 abc or 2 然后它立即转换为false 价值1被投射到true and nil仍然是nil 为什么会这样呢 在哪里可以找到解释此
  • PHPUnit:存根多个接口

    我正在掌握 PHPUnit 到目前为止发现它非常容易使用 但我遇到了一个给我带来困难的测试用例 我正在针对一组预期对象实现的接口 一些是 PHP 的 一些是自制的 编写代码 并且 SUT 需要一个输入对象来实现多个接口 例如 class M
  • 计算两个模型的梯度

    假设我们正在构建一个基本的 CNN 来识别猫和狗的图片 二元分类器 此类 CNN 的示例如下 model Sequential Conv2D 32 3 3 input shape Activation relu MaxPooling2D p
  • 在JetPack Compose中手动重构所有AndroidView

    在我的项目中 我使用 JetPack Compose 和 AndroidView 来使用 XML 视图 Composable fun MyComposable message String AndroidView factory conte
  • MSBuild /m:4 失败,因为它构建了同一个项目两次

    我的团队有一个大型解决方案 约 500 个 csproj 我们使用 VS2012 并使用 TFS Build 进行构建 TFS Build 使用 MSBuild 4 目前我们串行构建 但我们希望并行构建 使用msbuild maxcpuco
  • Maven 不会使用公钥来部署

    我正在使用 SSH 将我的 Java 工件部署到服务器 我设置了密钥 以便可以交互式 SSH 到服务器而无需密码 但是当我尝试运行 mvn deploy or mvn release perform 命令 它挂起 我认为是密码提示 My m
  • iOS RestKit 无法将本地实体保存到数据库

    我正在使用 RestKit 0 20 解析 JSON 数据并保存到数据库 这里有一个映射实体 SchoolClass 它由 RestKit 处理并保存得很好 我有另一个名为 MyClass 的实体 它存储我选择的类 这仅在设备上是本地的 这
  • 用CSS隐藏占位符

    我正在使用响应式主题 我在这里面临输入表单问题 在桌面视图中 输入不会有占位符 但有标签 但是 当涉及到移动视图时 我将隐藏此输入标签并使用占位符更改此标签
  • 如何使用 C# 唯一标识 USB 密钥?

    我希望能够检测到 USB 密钥何时插入 此外 如果我能够区分 USB 密钥 A 和 USB 密钥 B 那么我的状态就更好了 最后 如果我可以使用某种硬件序列号 MAC 地址或其他任何方式唯一地识别密钥 那么我就处于最佳状态 基本上 我正在考
  • iOS QuickType 栏:添加自定义建议

    我想根据我的应用程序的用户添加自定义建议 例如 假设它是游戏 然后根据他与之交互的用户 理想情况下 这些建议应在输入字段仍为空时显示 知道该怎么做吗 None
  • 无法加载文件或程序集或其依赖项之一。该系统找不到指定的文件

    我有这样的代码 public static Type ToType XmlSerializableType xmlSerializableType string func XmlSerialzationType ToType Type ty
  • 缩小以适应 Flexbox 或 Flex-basis 中的内容:内容解决方法?

    我有一个网络应用程序 我使用 Flexbox 进行布局 我试图既填充屏幕 它是一个应用程序 而不是文档 又尽可能不指定任何固定的宽度或高度 因为内容可能是各种各样的东西 完全流畅的布局 梦想 因此 我需要流体高度 全宽页眉和页脚 然后中间的
  • Golang将interface{}转换为struct

    我想改进下面代码中的 getCustomerFromDTO 方法 我需要从 interface 创建一个结构 目前我需要将该接口编组到 byte 然后将数组解组到我的结构 必须有更好的方法 我的用例是通过rabbitmq 发送结构 并使用这
  • 奇怪的 var_dump 行为

    我有以下代码行 var dump array 在一个文件中 它输出如下 array size 0 empty 在第二个文件中 它输出 string pre class xdebug var dump b array b i size 0 i
  • 使用 OpenCSV 从 csv 读取流数据

    我有加速度计和陀螺仪传感器流数据 保存在下载文件夹中 我想实时读取所有数据或逐行读取数据流 但我无法超出第一行 try CSVReader reader newCSVReader newFileReader path getAbsolute
  • 保护 Django 站点中的静态媒体访问

    我正在建立一个注册用户可以上传文件的网站 然后通过 Apache 提供这些文件 只有登录的用户才应该能够访问这些文件 我读过了这一页 http docs djangoproject com en dev howto apache auth