gpt4 book ai didi

ruby-on-rails - 用 Paperclip 将 RMagick 替换为 mini_magick

转载 作者:太空宇宙 更新时间:2023-11-03 16:00:49 25 4
gpt4 key购买 nike

我正在使用 RMagick 并喜欢它,但它消耗了大量内存。即使是一个简单的脚本也会使用超过 100MB 的内存。在我的本地机器上,这不是问题,但在 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 执行 Magic?

最佳答案

从 gemfile.add 中删除 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 将 RMagick 替换为 mini_magick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26013221/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com