Carrierwaveより簡単で速い画像アップローダー Refile
Rails の画像アップロードはずっとCarrierwaveを使っていたけど、
これからはRefileを使ってもいいかもしれない。
https://github.com/refile/refile
使い方はシンプルなのに、いろいろ凄い。
だけどインストールに手間取ったので、メモ。
1
2
3
gem 'aws-sdk'
gem 'mini_magick'
gem 'refile', require: ['refile/rails', 'refile/image_processing']
基本はドキュメント通りなので、そこは割愛します。
ポイントだけ。
画像の表示
Refileは大きさを指定されると、勝手に画像を作ってくれるというすごいやつ。
なので普通ではつまずかない表示で悩むこともある。
SSL認証
表示がうまくいかないので、
ログを見てみるとこんな感じだった。
1
2
3
4
Started GET "/attachments/profile_images/fill/70/70/xxxxxxxxxxxxxxxxxxxxxxxxx/image.jpg" for 192.168.33.1 at 2015-03-09 16:00:05 +0900
[AWS S3 200 0.14779 0 retries] head_object(:bucket_name=>"my-bucket",:key=>"profile/images/xxxxxxxxxxxxxxxxxxxxxxxxx")
Refile::App: Error -> SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
RubyのSSL認証がなんかおかしいとな。
これはこの記事が参考になりました。感謝。
エラー:OpenSSL::SSL::SSLError SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed - komiyakの通り道
ruby on rails - SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed - Stack Overflow
ImageMagick
SSL認証がうまくいったと思ったら今度はこんなエラー。
1
2
Refile::App: Error -> `gm convert /tmp/open-uri20150309-2422-12wbcnv /tmp/open-uri20150309-2422-12wbcnv` failed with error:
gm convert: No decode delegate for this image format (/tmp/open-uri20150309-2422-12wbcnv).
ドキュメントの通り、RefileはImageMagickが必要。
We're requiring both Refile's Rails integration and image processing via the MiniMagick gem, which requires ImageMagick to be installed.
それと、JPGとかPNGとかの画像形式をサポートするライブラリが必要らしい。
インストールしましょ。
ImageMagicのインストール - Road to Myself -- 自分を取り戻せ!!
"no decode delegate for this image format" の対処法 - DQNEO起業日記
そもそもImageMagickがなければ、インストールしましょう。
CentOS に ImageMagick, RMagick のインストール | akkunchoi@github
基本的な使い方はまた書こうと思います。