相关疑难解决方法(0)

Django - 了解X-Sendfile

我一直在研究使用Django进行访问控制的文件下载.我的目标是完全阻止对文件的访问,除非由特定用户访问.我已经读过,当使用Django时,X-Sendfile是实现这一目标的首选方法之一(基于其他SO问题等).我对使用Xang Sendfile和Django的基本理解是:

  1. 用户请求URI以获取受保护的文件
  2. Django应用程序根据URL决定返回哪个文件,并检查用户权限等.
  3. Django应用程序返回HTTP响应,并将"X-Sendfile"标头设置为服务器的文件路径
  4. Web服务器找到该文件并将其返回给请求者(我假设Web服务器也沿途除去了'X-Sendfile'标题)

与直接从Django中删除文件相比,X-Sendfile似乎是一种更有效的方法来实现受保护的下载(因为我可以依赖Nginx来提供文件,而不是Django),但是给我留下两个问题:

  1. 我对X-Sendfile的解释至少是抽象的正确吗?
  2. 它是否真的安全,假设我没有提供正常的前端HTTP访问(例如http://www.example.com/downloads/secret-file.jpg)到文件存储的目录(即,不要不要把它保存在我的public_html目录中)?或者,精通技术的用户是否可以检查标题等,并以反向工程方式访问文件(然后分发)?
  3. 它在性能上是否真的有很大差异?我是否会通过直接从Django提供8b块150Mb文件的下载来使我的应用程序服务器陷入困境,或者这种类型是无问题的?我问的原因是因为如果两个版本接近相等,Django版本会更好,因为我有能力用Python做事,比如记录完成的下载次数,下载的带宽等.

提前致谢.

python django x-sendfile download protected-resource

30
推荐指数
1
解决办法
8765
查看次数

如何使用django制作私人下载区?

我想在由django支持的网站上实现一个私有下载区域.用户必须使用适当的权限登录才能获得一些静态文件.

你有什么建议写这个功能.任何提示或技巧?

提前致谢

更新:也许是因为我的英语不好或我对这个架构缺乏了解(这就是我要问的原因)但我的问题是:如何确保静态文件(由常规网络服务器提供,不需要任何django)访问受到控制通过django身份验证.我将更仔细地阅读django文档,但我不记得该问题的开箱即用的解决方案.

Update2:我的主机提供商只允许FastCgi.

python authentication django download

10
推荐指数
1
解决办法
6804
查看次数