python sendfile_python – Django – 了解X-Sendfile

我一直在使用Django进行有关访问控制的文件下载的研究。我的目标是完全阻止访问文件,除非特定用户访问。我读过,当使用Django时,X-Sendfile是实现此目标(基于其他SO问题等)的首选方法之一。我对使用X-Sendfile与Django的初步了解是:

>用户请求获取受保护文件的URI

> Django应用程序根据URL决定要返回的文件,并检查用户权限等。

> Django应用程序返回一个HTTP响应,’X-Sendfile’头设置为服务器的文件路径

> Web服务器找到该文件并将其返回给请求者(我认为Web服务器也会沿着“X-Sendfile”头部删除)

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

我的X-Sendfile的解释至少是抽象的正确吗?

>假设我不提供正常的前端HTTP访问(例如http://www.example.com/downloads/secret-file.jpg)到文件存储的目录(即不要保留在我的public_html目录中),它是否真的很安全?或者,技术精湛的用户可以检查标题等,并逆向工程访问文件(然后分发)的方式?

这真的是一个很大的差异性能。我要通过直接从Django提供8b块下载的150Mb文件,而将其应用服务器下载,还是这种非问题?我问的原因是因为如果这两个版本接近相等,那么Django版本是比较好的,因为我能够在Python中执行任务,比如记录完成的下载数量,下载带宽等等。

提前致谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值