【问题标题】:Paperclip error when using Amazon S3使用 Amazon S3 时出现回形针错误
【发布时间】: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


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢你。很高兴知道我可以更改 ImageMagick 版本。虽然我什至不确定它会解决我的问题。将尝试 git 线程中提到的修复。它比我能做的要高级得多,但我会试一试..
    • 一件愚蠢的事情:我正在检查远程存储的图像的尺寸。即使模型尚未保存并且图像尚未被回形针处理,是否无法检查这一点?喜欢临时文件吗?
    猜你喜欢
    • 2011-12-27
    • 2012-12-03
    • 2016-04-15
    • 1970-01-01
    • 2012-07-10
    • 1970-01-01
    • 1970-01-01
    • 2018-04-09
    • 2011-03-27
    相关资源
    最近更新 更多