Herokuの優れている点に、多くのadd-onサービスとの連携ができることがあると私は勝手に考えています。その中でも今回利用したのは画像や動画を管理できるサービス、Cloudinaryです。画像・動画はどうしてもサイズが大きくなるのですが、Cloudinaryであれば1GBまでは無料で利用できるんです。ありがたいですよね。そこで今回はDjangoプロジェクトの画像保管先として利用するための方法についてまとめました。
cloud_name
, api_key
, api_secret
がそれぞれ表示されているのでキーと値をそれぞれ控えておき、Herokuの[ダッシュボード] > [Settings]タブにいきますdjango-cloudinary-storage
とPillow
をインストールする必要があるのでお忘れなく。$ pip install cloudinary django-cloudinary-storage pillow
settings.py
を修正していきましょう。下のソースコードのようにINSTALLED_APPS
内および静的ファイル等の記述がある画面一番下に、"Cloudinary"関連設定を追記します。#(追加)とある行が追記したコードです。.env
ファイルにはSECRET_KEY
やDEBUG
に関する記述の下に3組のキー(CLOUD_NAME
, API_KEY
, API_SECRET
)と値を記述しておきます。serializers.py
, admin.py
についても設定しますが、他のモデルにおける設定と同じなので省略します。これで設定完了です。画像を確認するためには、Djangoの管理画面から画像が格納されているデータを選択します。マスクが多く見辛くてすみませんが、下のようになっていると思います。"Currently"とある部分が現在格納されている画像のURLになっておりクリックしてみるとブラウザに画像が表示されます。その際のURLがCloudinaryの格納庫となっているわけです。ここまで記載の通り進めた場合は、"https://res.cloudinary.com/{CLOUD_NAME}/image/upload/v1/media/imgs/{img_name}"となっていると思います。
今回CloudinaryのStarterプランを使用したわけですが、1GB超えた場合の一つ上のプランはSilver: $99/月(2023年7月時点)ということでなかなか高額なので、画像を中心としたサービスを展開する場合は別の方法を考えた方がよさそうですね。。
よろしければこちらの記事も参考にしてみてください。
Loading...