1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Django】Cloudinaryに画像をアップロードしてRenderにデプロイする

Last updated at Posted at 2025-05-14

やりたいこと

画像ファイルをローカルにアップロードするところまで一旦完成している前提。
Cloudinaryに画像をアップロードしてRenderにデプロイする。

※ 対象ファイルは画像のみです。ほかの形式だとアップできてもRenderで表示できませんでした。

Cloudinaryにサインアップ

まず
https://cloudinary.com/ のSign up for freeからサインアップします。(アカウント作成)

ログインするとダッシュボードがあり、自分の情報が見えます。API接続に必要になる情報もここで確認ができます。

環境変数

  • LOUDINARY_CLOUD_NAME → dashboard > Cloud name から取得します
  • その他は「Go to API Keys」からAPI のページで取得します
    LOUDINARY_CLOUD_NAME
    CLOUDINARY_API_KEY
    CLOUDINARY_API_SECRET

.env ファイルに設定

.env
LOUDINARY_CLOUD_NAME=***
CLOUDINARY_API_KEY=************
CLOUDINARY_API_SECRET=********

settings.py に記述

settings.py

INSTALLED_APPS = [
    "django.contrib.admin",
    "django.contrib.auth",
    "django.contrib.contenttypes",
    "django.contrib.sessions",
    "django.contrib.messages",
    "django.contrib.staticfiles",
    'django_cleanup.apps.CleanupConfig',  # django-cleanup ファイル削除のため追加
    
+   # cloudinaryの追加
+   'cloudinary',
+   'cloudinary_storage',

    # アプリ
    'app',
]
...


# 末尾に追加
""" 画像用 """
MEDIA_URL = '/media/' # 添付ファイル
# DEBUGがTrueだったらMEDIA_ROOT、FalseならCloudinaryにアップする
+ if DEBUG: 
      MEDIA_ROOT = os.path.join(BASE_DIR, 'media') # 添付ファイル
+ else:
+     CLOUDINARY_STORAGE = {
+         'CLOUD_NAME': env('CLOUDINARY_CLOUD_NAME'), # cloudinaryのCLOUD_NAME
+         'API_KEY': env('CLOUDINARY_API_KEY'), # cloudinaryのAPI_KEY
+         'API_SECRET': env('CLOUDINARY_API_SECRET'), # cloudinaryのAPI_SECRET
+     }

+     DEFAULT_FILE_STORAGE = 'cloudinary_storage.storage.MediaCloudinaryStorage'

ローカルで試す時は、一旦
if DEBUG:  → if not DEBUG:
にしてcloudinary にアップできるか確認してみる。

Cloudinary 画像保存場所
左メニューAsetts > Media Library

モジュールのインストール

  1. requirements.txt に書く
  2. ターミナルで pip install -r requirements.txt コマンド実行
requirements.txt
django==4.2.18
dj-database-url==2.1.0
dj-static==0.0.6
python-decouple==3.8
django-environ==0.11.2
gunicorn==21.2.0
psycopg2-binary==2.9.9
whitenoise==6.6.0
django-cleanup==9.0.0
+ cloudinary==1.44.0
+ django-cloudinary-storage==0.3.0
pip install -r requirements.txt

最新のバージョンを調べるには「モジュール名 pip」で検索する
例)https://pypi.org/project/django-cloudinary-storage/


デプロイする

GitHubにpush
renderデプロイ
→ 失敗するので、環境変数 Environment を追記して、saveデプロイ

image.png

参考

参考サイト

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?