代码之家  ›  专栏  ›  技术社区  ›  André Caron

Django:控制对“静态”文件的访问

  •  3
  • André Caron  · 技术社区  · 14 年前

    好吧,我 通过Django提供媒体文件是 not recommended

    例子 :我想通过网络为自己提供电影库。我经常旅行,我想无论身在何处都能看我的电影,只要我能上网。所以我撕开我的dvd,把它们上传到我的服务器上,然后构建这个简单的Django应用程序,再加上一些 embeddable video player .

    为了避免任何法律后果,我希望确保只有拥有适当权限的登录用户(即我和同住一户的人,他们可以像我一样,在方便的时候访问真正的DVD),但拒绝其他用户(即在我的博客上发表评论的人)访问,并返回一个HTTP 404。

    现在,直接使用Apache和 mod_wsgi 相当麻烦,因为当对媒体文件的HTTP请求(即。 http://video.mywebsite.com/my-favorite-movie/ )进来后,我需要根据我的用户数据库验证另一端的人是否具有适当的权限。

    问题 可以 我达到了这个效果 直接通过Django视图提供媒体文件?我有什么选择?

    我想到的一件事是编写一个简单的脚本,它获取会话ID和视频的slug,并返回一些布尔值,指示用户是否可以(或不可以)访问视频文件。然后,不知何故请求 莫迪乌斯基 在访问请求的URL之前执行此脚本,如果脚本失败,则返回HTTP 404。但是,我不知道这是否可能。

    编辑 :发布这个问题澄清了我对搜索的一些想法,我发现 mod_python file wrapper extension . 有没有人有足够的经验来证明这是一个可行的解决方案?

    1 回复  |  直到 14 年前
        1
  •  4
  •   Pi Delport    10 年前

    是的,您可以从Apache连接到Django的身份验证。请参阅以下操作方法: