11

我很好奇是否有人可以在不使用 S3 的情况下在 Heroku 上工作时获得回形针。我假设 Heroku 是一个只读系统,但必须有某种方法可以在那里保存图像。

4

5 回答 5

19

你不能写入 Heroku 的文件系统,所以不,没有办法以你想要的方式保存图像。您的选择是使用像 S3 这样的服务,或者将它们存储在数据库中。我推荐使用 S3,因为数据库没有针对文件存储进行优化。值得阅读Heroku 关于文件上传的文档

于 2011-02-23T20:27:40.950 回答
12

您可以将图像保存到logtmp目录。

然而,这是一个可怕的、可怕的想法。

  • 如果你git push heroku,你的应用程序将被部署到一个新的测功机。新的测功机将没有图像,图像将永远消失。

  • 如果您有两个测功机,一个测功机保存图像,则下一个测功机将无法使用该图像。

因此,实际上,没有将图像保存到文件系统的好方法。

如果需要,您可以为 Paperclip 编写自己的适配器,将图像存储在数据库中。

但实际上,当您在 Heroku 上使用 Paperclip 时,您应该将图像存储在 S3 中,因为这是最简单的默认方式。

于 2011-02-23T20:29:32.223 回答
3

顺便说一句,这也是 SASS 需要 Heroku 上的插件,限制对磁盘的访问的原因。正如其他人所说,我在 Heroku 上的许多应用程序中使用 Paperclip,S3 放下手是要走的路。

于 2011-02-24T05:06:20.303 回答
3

这适用于像我这样没有信用卡但仍希望使其正常工作的人,因为您需要提供信用卡凭据才能使用 S3。Cloudinary Gem允许通过 Paperclip 管理的 Rails 模型将图像和文件资产存储在 Cloudinary 实例上。我只需要将 yaml 文件添加到我的配置目录并在我的模型中指定存储路径,如下所示。

has_attached_file :image,
  :storage => :cloudinary,
  :path => ':id/:style/:filename'

有关更多详细信息,请参阅上面的链接。

于 2017-05-16T15:16:18.500 回答
-1

也许Amazon EBS可以与 Heroku 一起使用——还是它的级别太低了?

于 2011-02-23T20:31:23.857 回答