DjangoBrothers BLOG ✍️

2022/07/01

このエントリーをはてなブックマークに追加
Django

DjangoでGoogle Cloud Storage の設定をして公開URLを使う

画像やファイルの保存先としてGoogle Cloud Storageを設定する方法です。また、保存されたオブジェクトのURLは公開URLを使うように設定します。

django-storagesを使います。

インストール

まずはdjango-storagesをインストールします。

pipでインストール

$ pip install 'django-storages[google]==1.12.3'

↓ requirements.txtに記載する場合。

requirements.txt

django-storages[google]==1.12.3

settings.pyの更新

settings.pyに必要な設定を加えます。本番環境でのみGCSを使いたい場合は、DEBUG変数の値がFalseの時のみ適用されるような対応が必要です。

settings.py

# settings.py
DEFAULT_FILE_STORAGE = "storages.backends.gcloud.GoogleCloudStorage"
GS_BUCKET_NAME = "バケット名"

# 公開URLを使う設定
GS_QUERYSTRING_AUTH = False

これにより、画像やファイルのアップロード先、取得先がGCSに設定されます。

GS_QUERYSTRING_AUTH=Falseにすると公開URLが使われることになります。詳細はドキュメントを参照してください。

Google Cloud Storage の設定

ドキュメントにある手順で、サービスアカウント作成、パーミッション設定、サービスアカウントキーのダウンロードを行います。 サービスアカウントの作成、キーのダウンロードはこちらを参考にしてください。

次に、環境変数 GOOGLE_APPLICATION_CREDENTIALS を設定します。

環境変数の設定

$ export GOOGLE_APPLICATION_CREDENTIALS=~/path/to/ダウンロードしたファイル.json

公開URLを使うにはバケットに権限設定をする必要があります。