可以让 Heroku 使用持久文件系统吗?

Can Heroku be made to use a persistent filesystem?

我构建了一个应用程序,用户可以在其中上传他们的头像。我使用回形针 gem 并且在我的本地机器上一切正常。在 Heroku 上一切正常,直到服务器重新启动。然后每张上传的图片都消失了。是否可以将它们保留在服务器上?

注意:我可能应该使用 Amazon S3 或 Google Cloud 等服务。然而,即使您想使用免费模式,每项服务都需要信用卡或银行账户信息。这是一个专为我的投资组合设计的小应用程序,我宁愿避免发送该信息。

不,这不可能。 Heroku's filesystem is ephemeral and there is no way to make it persistent. You will lose your uploads every time your dyno restarts.

如果要存储文件 long-term,您必须 use an off-site file storage service like Amazon S3

(从技术上讲,您可以将图像直接存储在数据库中,例如作为 bytea in Postgres,但我 强烈 建议不要这样做。这样效率不高,然后您必须担心如何将保存的文件提供给浏览器。使用 S3 或类似的东西。)