【问题标题】:Replacing RMagick with mini_magick with Paperclip用回形针替换 RMagick 为 mini_magick
【发布时间】:2014-09-24 09:24:13
【问题描述】:

我正在使用RMagick 并喜欢它,但它正在消耗大量内存。即使是一个简单的脚本也会使用超过 100MB 的 Ram。在我的本地机器上这不是问题,但在 heroku 上,当几个用户同时上传图片时,我的应用程序会崩溃。

我找到mini_magick 并尝试在我的模型中替换它,但找不到解决方案。这是我当前的流程:

  # Validations
  validates :scr, presence: true

  # Paperclip
  has_attached_file :scr,
    styles: {
      index:        ['220x170#', :jpg, quality: :better],
      show:         ['1000', :jpg, quality: :better],
      original:     ['100%', :jpg, quality: :better],
      directionals: ['115x70#', :jpg]
    },
    convert_options: {
      show:         '-quality 90 -unsharp 3x0.4+0.4+0 -interlace Plane',
      index:        '-quality 90 -unsharp 3x0.4+0.4+0 -interlace Plane',
      original:     '-quality 90 -interlace Plane',
      directionals: '-quality 90 -interlace Plane'
    },
    processors: [:thumbnail, :compression]

  # Paperclip Validation
  validates_attachment_content_type :scr, content_type: ['image/jpg', 'image/jpeg', 'image/png']

如何替换 RMagick 并让 Mini_magick 发挥作用?

【问题讨论】:

    标签: ruby-on-rails ruby paperclip rmagick minimagick


    【解决方案1】:

    从 gemfile.add minimagick 中删除 Rmagick 到您的 gemfile 并开始使用它

    Add the gem to your Gemfile:
    
    gem "mini_magick"
    

    bundle install 
    

    ####now start using it with callback/observer 
    image = MiniMagick::Image.open("input.jpg")
    image.resize "100x100"
    image.write  "output.jpg"
    

    您也可以使用delayed_paperclip,以便在运行时仅转换您在下一页上需要的样式....将其置于后台进行转换,无需更改代码。

     process_in_background :avatar, :only_process => [:show,:original,:directionals]
      ##assuming you next page only need style :index..
    

    【讨论】:

    • :) 我正在努力解决如何将它应用到我当前的设置以及如何将它与 Paperclip 一起正确使用。例如:如何将 image_magick 用于样式和转换选项?
    • @TheMiniJohn 你可以试试delayed_pa​​perclip ..因为你需要性能..我已经更新了我的答案
    • 听起来很有希望,会尝试一下。不过我还是要干掉RMagick,那只野兽早餐吃记忆!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-13
    • 1970-01-01
    • 1970-01-01
    • 2015-03-26
    • 2011-02-27
    • 2014-08-22
    相关资源
    最近更新 更多