使用Amazon S3时出现回形针错误

时间:2017-04-16 17:46:28

标签: ruby-on-rails amazon-s3 paperclip

我正在使用Heroku和Amazon AWS(S3)在线迁移我的应用程序,并且遇到了profilepic模型的奇怪错误。

此模型管理个人资料照片。它由2个Paperclip附件和一些其他字段组成,并且依赖于另一个名为Professionnel的模型。

以下是模型:

class Profilepic < ApplicationRecord

  belongs_to :professionnel

  has_attached_file :image, styles: { original: "6000x6000", editable: "1200x1200", thumbnail: "400x400#"}
  validates_attachment :image, content_type: { content_type: ["image/jpeg", "image/gif", "image/png"] }, size: {less_than: 10.megabytes}

  has_attached_file :finalimage, styles: { medium: "500x500", small: "200x200"}, processors: [:cropper]

  attr_accessor :crop_x, :crop_y, :crop_w, :crop_h

end

第一个附件:图像是用户上传的图像。第二个图像(:finalimage)是Professionnel用户编辑后的裁剪图像(使用cropper.js)

一切都在当地完美运作

但是,当图像上传时,下面的一些代码返回 Paperclip :: Errors :: NotIdentifiedByImageMagickError

触发此错误的代码位是:

nouvelleppic.ratiolongdivlarg = Paperclip::Geometry.from_file(nouvelleppic.image.path(:original)).width / Paperclip::Geometry.from_file(nouvelleppic.image.path(:original)).height

在这段代码中,我在Paperclip几何函数的帮助下发现宽度/高度比。

不确定是什么错。它在本地完美运行,我在查询之后:图像已成功保存到我的S3存储桶中(我在S3控制台中检查过)

我需要这个比例来创建视图,允许用户裁剪图像并将其转换为:finalimage。这很有趣,当迁移到Heroku / S3时它不起作用,因为它是Paperclip的简单几何函数。上传没问题...

编辑编辑

似乎确定了问题:

https://github.com/thoughtbot/paperclip/issues/2198

我刚检查了Heroku Cedar14堆栈上的Imagemagick版本:6.7.7-10 !!

Version: ImageMagick 6.7.7-10 2016-11-29 Q16 http://www.imagemagick.org

如上面的git线程所示,有没有办法在Heroku上升级ImageMagick?

这个帖子How can I use the latest version of Imagemagick on Heroku?似乎暗示我们可以这样做(第二个答案)??

1 个答案:

答案 0 :(得分:0)

回答你的第二个问题。在heroku上更新Image Magic的方法是使用buildpack。就像你现在拥有的Ruby buildpack一样,你必须添加一个Image Magic buildpack。 Heroku有一个专门用于Image Magic buildpacks的页面:

https://elements.heroku.com/search/buildpacks?utf8=%E2%9C%93&q=imagemagick

这个(下面)似乎是最受欢迎的,但随意浏览: https://elements.heroku.com/buildpacks/mcollina/heroku-buildpack-imagemagick