Python 仅向经过身份验证的用户显示pdf

Python 仅向经过身份验证的用户显示pdf,python,html,pdf,permissions,pylons,Python,Html,Pdf,Permissions,Pylons,我正在从旧网站上建立一个网站,我需要显示很多.pdf文件 我需要在用户无法看到任何my.pdf之前获得授权,但我不知道如何操作(而且我无法将我的pdf放入数据库) 我在Python中使用挂架 谢谢你的帮助 如果你有任何问题,问我!:) 您想使用X-Sendfile头发送这些文件。确切的详细信息将取决于您使用的Http服务器。您希望使用X-Sendfile头发送这些文件。确切的细节将取决于您使用的Http服务器。Paul对X-Sendfile的建议非常好-这确实是一种处理将文档返回给用户的好方法。

我正在从旧网站上建立一个网站,我需要显示很多.pdf文件

我需要在用户无法看到任何my.pdf之前获得授权,但我不知道如何操作(而且我无法将我的pdf放入数据库)

我在Python中使用挂架

谢谢你的帮助


如果你有任何问题,问我!:)

您想使用X-Sendfile头发送这些文件。确切的详细信息将取决于您使用的Http服务器。

您希望使用X-Sendfile头发送这些文件。确切的细节将取决于您使用的Http服务器。

Paul对X-Sendfile的建议非常好-这确实是一种处理将文档返回给用户的好方法。(+1代表保罗:)

对于前端,请执行以下操作:

  • 将PDF存储在web无法访问的位置(例如/secure)
  • 提供一个类似/unsecure/filename.pdf的URL
  • 让您的HTTP服务器(如果是Apache,请参阅Mod Rewrite)将该链接转换为/normal/php/path/authenticator.php?file=filename.pdf
  • authenticator.php确认文件存在,用户合法(即通过cookie),然后使用X-Sendfile返回PDF

  • Paul对X-Sendfile的建议非常好——这确实是一种处理将文档返回给用户的好方法。(+1代表保罗:)

    对于前端,请执行以下操作:

  • 将PDF存储在web无法访问的位置(例如/secure)
  • 提供一个类似/unsecure/filename.pdf的URL
  • 让您的HTTP服务器(如果是Apache,请参阅Mod Rewrite)将该链接转换为/normal/php/path/authenticator.php?file=filename.pdf
  • authenticator.php确认文件存在,用户合法(即通过cookie),然后使用X-Sendfile返回PDF

  • 这是我在塔架上的尝试。我还没有测试这个,但应该有足够的链接让你去

  • 在HTTP服务器上启用X-SendFile(正如Paul所说,实现取决于服务器):Apache、Nginx
  • 将PDF放在挂架安装中的/public目录之外(我建议使用与挂架目录相同级别的目录)
  • 向站点添加某种身份验证和授权。是一篇关于如何使用(身份验证)和(授权)的好文章
  • 创建一个路由和控制器来处理PDF请求,这与任何其他路由和控制器一样。(即/pdfs/{filename}.pdf的路径)
  • 如果所有内容都已正确授权和验证,则可以为正在使用的x-sendfile(或等效文件)创建正确的标头

  • 这是我在塔架上的尝试。我还没有测试这个,但应该有足够的链接让你去

  • 在HTTP服务器上启用X-SendFile(正如Paul所说,实现取决于服务器):Apache、Nginx
  • 将PDF放在挂架安装中的/public目录之外(我建议使用与挂架目录相同级别的目录)
  • 向站点添加某种身份验证和授权。是一篇关于如何使用(身份验证)和(授权)的好文章
  • 创建一个路由和控制器来处理PDF请求,这与任何其他路由和控制器一样。(即/pdfs/{filename}.pdf的路径)
  • 如果所有内容都已正确授权和验证,则可以为正在使用的x-sendfile(或等效文件)创建正确的标头

  • 也许带md5密钥的文件名就足够了

    48cd84ab06b0a18f3b6e024703cfd246-myfilename.pdf


    您可以使用filename和datetime.now来生成md5密钥。

    也许使用md5密钥的filename就足够了

    48cd84ab06b0a18f3b6e024703cfd246-myfilename.pdf


    你可以使用filename和datetime.now来生成md5密钥。

    对于挂架,你要做的就是路由/控制器,显然:)@Ben-是的,如果你真的知道如何在挂架中这样做,我会投票给你。。。我不是Python或Pylons程序员:)对于Pylons,你要做的就是路由/控制器,显然:)@Ben-是的,如果你真的知道如何在Pylons中做到这一点,我会投票给你。。。我不是Python或Pylons程序员:)