【问题标题】:Generating and serving files created by a Python script on Heroku (Node/Express server)在 Heroku(Node/Express 服务器)上生成和提供由 Python 脚本创建的文件
【发布时间】:2016-01-20 23:42:29
【问题描述】:

我正在开发一个网站,该网站收集来自多个用户的文本输入,然后在一段时间后将所有输入提供给具有另一个角色的用户。有权访问所有输入的用户需要能够将所有文本导出为 Word 文档。

现在,在我的本地机器上,页面上的一个按钮对所有文本进行 db 调用,并使用 fs npm 模块以 pyton 脚本可以的格式将正确的输入集写入原始文本文档理解。然后我使用python中的docx模块读取文本并将格式化的输入写入word文档,将其保存到我服务器的公共目录中。之后我可以手动导航到它。

我可以通过编写一个简单的 cron 作业在本地自动执行它,该作业等待原始文本文件的内容发生更改,在发生这种情况时触发 python 程序,并在超时后显示单词 doc 的链接。 我的问题是如何让它在我的 heroku 网站上工作?仅仅拥有 python 是不够的,因为我需要使用 pip 安装 docx 模块。除此之外,我仍然需要对原始文本文件进行定期检查以更改以触发 python 脚本。这可以通过 Procfile 或一些 heroku 插件来完成吗?有没有更好的方法来完成按钮单击-> 文档创建-> 提供文件的所需行为?很想知道你的想法。

【问题讨论】:

    标签: python node.js heroku


    【解决方案1】:

    您需要考虑几个不同的问题:1) 同时启用 Python 和 Node,然后 2) 在 Heroku 上正确使用文件系统,以及 3) 安排工作的方法。

    对于 #1,您需要启用多个构建包以获取 Node.js 和 Python 堆栈。见https://devcenter.heroku.com/articles/using-multiple-buildpacks-for-an-app

    对于#2,您需要将文件发送到某种类型的存储服务(例如,Amazon S3) - 您的测功机的文件系统是短暂的,并且在测功机重新启动后写入其中的任何内容都会消失(每 24 小时发生一次)无论如何)

    对于#3,最简单的解决方案可能是 Heroku Scheduler 插件,它的作用类似于基本的 cron。请记住,您没有低级操作系统访问权限,因此您需要使用 Heroku 提供的等价物。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-09
      • 2018-10-24
      • 2022-01-17
      • 2021-12-22
      • 1970-01-01
      • 2021-06-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多