9

我昨天部署了我的第一个 Heroku 应用程序,一切都很好。

在我的应用程序中,您可以上传图像,我做到了并且可以在“显示”页面上看到它。然而,今天这张照片消失了。其他一切似乎都很好。该应用程序在我的本地机器以及 Heroku 上运行良好,除了不存在的图像。

可能是什么问题?我怎样才能确保它不会再次发生?

4

3 回答 3

31

Heroku 不支持文件上传。文件系统是只读的。您必须将上传的文件托管在其他地方(或来自数据库,这是一个不好的选择)。

https://devcenter.heroku.com/articles/read-only-filesystem

Amazon S3 是一个常见的选择:http ://devcenter.heroku.com/articles/s3

如果您使用回形针或载波等任何 gem 进行上传,则使用 S3 将很简单。您必须在配置文件中设置 S3 凭据,gem 将负责上传并为上传的文件提供 url。

于 2013-04-25T09:05:33.103 回答
10

我怀疑您可能已将图像上传到 Heroku 文件系统,而不是像 Amazon S3 这样的外部文件存储。Heroku 文件系统是临时的,不会在 dynos 或重启之间共享——Heroku 每天都会这样做。我怀疑这就是这里发生的事情,导致你失去了你的形象。

于 2013-04-25T09:05:20.240 回答
2

Heroku 是文件系统是临时的。或者,您可以将图像保存为 url,直到您准备好使用 aws...

于 2020-12-30T02:41:54.767 回答