2022/07/01
DjangoDjangoで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を使うにはバケットに権限設定をする必要があります。