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



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

此模型管理个人资料图片。它由2个回形针附件和其他一些字段组成,并取决于另一个称为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

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

一切都在本地完美运行

但是,当上传图像时,以下代码将返回回形针::错误::NotIdentificationByImageMagickError

触发此错误的代码位是:

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

在这段代码中,我在回形针几何函数的帮助下发现了宽/高比。

不知道出了什么问题。它确实在本地完美运行,并且在 :image 成功保存到我的 S3 存储桶后,我正在查询此内容(我在 S3 控制台中检查过)

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

编辑编辑

似乎问题已确定:

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 ?

这个线程 如何在 Heroku 上使用最新版本的 Imagemagick? 似乎建议我们可以这样做(第二个答案)??

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

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

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

最新更新