【发布时间】:2017-04-16 17:46:28
【问题描述】:
我正在使用 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
第一个附件:图片是用户上传的图片。第二张图片(: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 几何函数的帮助下发现了宽/高比。
不知道出了什么问题。它在本地完美地工作,我在 :image 成功保存到我的 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? 似乎暗示我们可以这样做(第二个答案)??
【问题讨论】:
标签: ruby-on-rails amazon-s3 paperclip