Paperclipで指定した時だけprocessを省略する
herokuでpaperclipを使ったアプリケーションを運用していると、
S3との通信のもたつきなどで画像のアップロード/クロッピングの処理がタイムアウトしてしまうことがある。
(Heroku の Delayed jobは処理に15秒以上かかるとタイムアウトする)
なので、クロッピングやアップロードは、必要な時だけするようにして
パフォーマンスを上げたい。
自分はwithout_main_processというattr_accessorを作って、
styles[:main] が必要ない時は除外するようにしました。
もっと効率がいい方法がありそうだけど。。
他にやり方あったら教えていただけると幸いです!
models/Photo.rb
has_attached_file :photo_file, styles: lambda { |attachment| attachment.instance.choose_styles } attr_accessor :without_main_process def choose_styles if self.without_main_process.blank? puts "choose_styles : main" { main:"230x230#" } else puts "choose_styles : none" { } end end