【问题标题】:How to save files from Heroku? [duplicate]如何从 Heroku 保存文件? [复制]
【发布时间】:2020-08-03 22:10:04
【问题描述】:

我有一个在 Heroku 上运行的 python 程序,它是从 github 存储库部署的。但该程序使用 .txt 文件来保存有关使用/日志的数据。有时我会更新代码,但问题是在我将更改提交到 github 并再次部署程序后,所有所说的 .txt 文件都是从 github 复制的,所以我丢失了所有重要数据。

我已经尝试使用heroku run bash -a appname 访问 bash 并使用 git 推送到我的 github 帐户,购买它产生了一堆错误。

我也尝试暂时使用cat filename.txt 来复制内容,但我注意到文件与我在 github 上的文件没有什么不同,此外,我所做的任何更改都像 git init 或 @987654324 @ 退出控制台后不保存。

理想的解决方案是通过某种方式从 heroku 提交到 github,但至少可以看到更改的方式也将不胜感激。也许有人知道这样做的方法?

提前谢谢你

【问题讨论】:

  • 我会考虑一种不同的方法:作为一个 Python 应用程序,你可以有一个端点(Flask)来获取数据并保存(甚至是增量的)。这可能更容易,您只需要有一个客户端应用程序(或使用 Postman 手动)来调用端点

标签: git heroku


【解决方案1】:

Heroku Dynos 使用Ephemeral Filesystem,这是一个读/写文件系统,只有在 Dyno 运行时才可用,只要 Dyno 重新启动或停止(至少每 24 小时发生一次) ,写入文件系统的任何更改都将被销毁。启动新的 Dyno 时,Dyno 将具有与在部署期间构建应用程序时编译的文件系统相同的文件系统。

要永久存储文件,您需要使用大容量存储系统,例如 AWS S3。 AWS 拥有出色的公共 API,以及适用于所有主要语言和框架的插件。

对于日志文件,建议您将日志记录到 STDOUT,因为应用程序的所有输出都经过整理并可以导出到日志插件 (https://elements.heroku.com/addons/categories/logging)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-06
    • 2022-01-06
    • 2019-11-30
    • 1970-01-01
    • 1970-01-01
    • 2017-05-17
    • 2020-04-29
    • 1970-01-01
    相关资源
    最近更新 更多