ActiveStorageでCloudinaryを使うときに本当に必要なこと
2020-06-20 10:19:31 +0900
はてなブログからHeroku上に構築したRailsアプリケーションに移行する際に当然ブログなら画像アップロード機能が不可欠なわけですが、S3においておくのも面倒なので、ひとまずCloudinaryに画像入れることにしました。
Pricingにもあるように、しばらくは無料で戦えるようにはなっているのでありがたくこちらを利用させていただきます。
https://elements.heroku.com/addons/cloudinary#pricing
ちょっと日本語の記事とか読んでたんですがうまくできないし、必要もないライブラリをインストールしていたりであまり参考にならなかったので書き残しておきます。
Pricingにもあるように、しばらくは無料で戦えるようにはなっているのでありがたくこちらを利用させていただきます。
https://elements.heroku.com/addons/cloudinary#pricing
ちょっと日本語の記事とか読んでたんですがうまくできないし、必要もないライブラリをインストールしていたりであまり参考にならなかったので書き残しておきます。
1. HerokuでCloudinaryのアドオンを追加
これはHerokuの場合に行います。すでにアドオンをインストールしている人はSkip。
2. CloudinaryのGemをRailsアプリケーションにインストールする
必ずインストールしましょう。
https://github.com/cloudinary/cloudinary_gem
https://github.com/cloudinary/cloudinary_gem
3. config/cloudinary.ymlファイルを作成する
具体的には下記のようにして、環境変数を参照するようにしたが、
production: cloud_name: <%= ENV['CLOUDINARY_CLOUD_NAME'] %> api_key: <%= ENV['CLOUDINARY_API_KEY'] %> api_secret: <%= ENV['CLOUDINARY_API_SECRET'] %> secure: true cdn_domain: true
4. ActiveStorageの設定を行う
次はActiveStorageの設定を進める。といっても簡単で、config/storage.yml を作成して下記コードを追加。
cloudinary: service: Cloudinary
僕はHerokuの本番環境でのみ利用したかったので、config/enviroments/production.rb に下記コードに変更した。
config.active_storage.service = :cloudinary
これについても下記公式URLを参考にして進めた。
Finished.
これでActiveStorageを利用する際にCloudinaryが利用されるようになった。
試しに画像をActiveStorageでアップロードしてみてアップロードできるかテストしてみよう。
ちなみに、いくつかの記事で言及されている、activestorage-cloudinary-serviceについては公式SDKがActiveStorageをサポートしているし、更新も2年以上止まっているみたいなので、インストールする必要は全くない。ちゃんと何をするライブラリなのか?本当に必要か?というのを調べてからインストールするようにしましょう。コピペは禁物。
https://github.com/0sc/activestorage-cloudinary-service
試しに画像をActiveStorageでアップロードしてみてアップロードできるかテストしてみよう。
ちなみに、いくつかの記事で言及されている、activestorage-cloudinary-serviceについては公式SDKがActiveStorageをサポートしているし、更新も2年以上止まっているみたいなので、インストールする必要は全くない。ちゃんと何をするライブラリなのか?本当に必要か?というのを調べてからインストールするようにしましょう。コピペは禁物。
https://github.com/0sc/activestorage-cloudinary-service