我正在使用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']
我怎样才能取代马吉克,让迷你魔术师来施展魔法?
最佳答案
从gemfile中删除rmagick。将minimagick添加到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进行相同的转换,以便在运行时只转换下一页所需的样式……rest将其放在后台进行转换,而不更改代码。
process_in_background :avatar, :only_process => [:show,:original,:directionals]
##assuming you next page only need style :index..
关于ruby-on-rails - 用Paperclip用mini_magick代替RMagick,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26013221/