我有一个电报机器人,它带有一个托管在 Heroku Free dyno 上的 Postgres DB。在我的代码的一个阶段,我想永久保存腌制文件,以便以后可以访问它们。将它存储在表上感觉不是一个好主意,因为它是一个具有可变数量输入的嵌套类。问题是 Heroku 经常或至少在每次重启或推送时删除这些文件。有没有办法解决这个问题?
问问题
731 次
1 回答
2
为此,您必须使用 AWS S3、GCP 云存储(存储桶)、Azure Blob 存储等外部服务。或者您可以考虑使用Felix Cloud Storage、Cloud Cube、Bucketeer、HDrive等插件来轻松集成。
这是文档中的说明:
Heroku 文件系统是短暂的 - 这意味着在 dyno 运行时对文件系统的任何更改只会持续到该 dyno 关闭或重新启动。每个测功机都使用最新部署的文件系统的干净副本启动。这类似于有多少基于容器的系统(例如 Docker)运行。
此外,在正常操作下,dynos 每天都会在一个称为“循环”的过程中重新启动。
这两个事实意味着 Heroku 上的文件系统不适合持久存储数据。如果您需要存储数据,我们建议使用 Postgres(用于数据)等数据库插件或 AWS S3(用于静态文件)等专用文件存储服务。如果您不想使用 AWS 设置帐户来创建 S3 存储桶,我们这里还有处理静态资产存储和处理的插件https://elements.heroku.com/addons
于 2020-10-08T09:13:15.583 回答