【问题标题】:Paperclipped on Heroku?Heroku 上的回形针?
【发布时间】:2011-02-23 20:19:35
【问题描述】:

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

【问题讨论】:

  • 如果只是图片,您可以将链接存储在数据库中,并热链接到 flickr

标签: ruby-on-rails heroku paperclip radiant


【解决方案1】:

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

【讨论】:

  • 是否有 S3 的押金,或者真的只有几分之一美分。考虑到我每两个月只上传几张图片,我只需要支付近一两美元吗?
  • 如果每几个月只有几张图片,您将支付不到一美元(取决于流量)。 S3 很便宜。
【解决方案2】:

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

但是,这是一个可怕的想法。

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

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

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

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

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

【讨论】:

    【解决方案3】:

    顺便说一句,这也是为什么 SASS 需要 Heroku 上的插件,限制对磁盘的访问的原因。正如其他人所说,我在 Heroku 上的许多应用程序中都使用了 Paperclip,S3 是最好的选择。

    【讨论】:

      【解决方案4】:

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

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

      更多详情请参考以上链接。

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          猜你喜欢
          • 2013-12-26
          • 1970-01-01
          • 2011-07-31
          • 1970-01-01
          • 1970-01-01
          • 2011-08-09
          • 2014-01-29
          • 2012-04-26
          • 1970-01-01
          相关资源
          最近更新 更多