【Django】GoogleCloudStorageの設定方法

【Django】GoogleCloudStorageの設定方法

こんばんはエンジニアの眠れない夜です。

今回はDjangoで Google Cloud Storage を設定する方法をご紹介します。

django-storagesのドキュメントを読めばそのままなのですが、認証の部分できちんと理解できていなくてハマってしまいました…

この記事を読んでいる方はサックと設定ができるようにお役に立てれば幸いです。

全体的な流れはこの3ステップです。

  1. Google Cloud サービスアカウントを作成
  2. アカウントとストレージ(バケット)と紐付け
  3. Django のセッティングファイルに設定を書く

それでは順番に設定していきます。

Google Cloud サービスアカウントを作成

まずはGoogleCloudを開いて、サービスアカウントを作成します。

add-service-account-key

ここで作成する名前はアプリケーションやプロジェクト名にすると分かりやすいです。

役割は「ストレージ管理者」や「ストレージのオブジェクト管理者・編集者」など必要に応じて権限を設定すればOKです。

make-service-account-key

設定が終わると JSON ファイル をダウンロードできます。このファイルは今作成したアカウントでストレージにアクセスするために必要になります。

今作成したアカウントのメールアドレスを次のステップで使うのでサービスアカウントの一覧で確認して、どこかにコピペしておきます。

バケット非公開なので一般公開する方法はこちらを確認してください。

※ サービスアカウントの作成方法の説明はこちらの記事の方が丁寧です。

GoogleCloudStorageでPythonからファイルをやりとりする方法

アカウントとストレージ(バケット)と紐付け

続いてストレージからバケットを作成します。

google-cloud-storages-make-baket-1

バケットを作成したら「権限」の設定に移ります。

「メンバーを追加」をクリックするとメールアドレスを入れる欄が出てくるので先程メモしたサービスアカウントのメールアドレスを入力します。アカウントの権限は「ストレージ管理者」など適宜設定を行ってください。google-cloud-storages-make-baket

これで作成したアカウントがこのバケットに読み書きできるようになりました。

バケット名とプロジェクト名を次のステップで使うので適当にコピペしておきます。

プロジェクト名はここから確認できます。

google-cloud-project-name

Django のセッティングファイルに設定を書く

続いて Django のセッティングファイルの設定を行います。settings.pyにはこのように書き込みます。

your-xxx の部分は先程コピペした情報やJSONファイルのパスを設定すればOKです。

※ ターミナルにJSONファイルをドラッグすると絶対パスを取得できます。
※ 開発環境と本番環境でパスは異なるので注意。

これで設定は終わりです。とても簡単ですね!

その他詳しい設定はこちらのdjango-storagesの公式ドキュメントを参考にしてください。

Cloud Storageの動作確認

後は python manage.py collectstatic を実行するとバケットにstaticフォルダの中身がアップロードされます。

とても簡単でしたね!

サーバーには収まらないサイズのファイルを扱う時にはぜひぜひやってみてくださいね。

 

余談ですが、Googleストレージで使う「バケット」という単語の意味がよくわからなかったのですが、原文を見るとBucketsと書いてありました。バケツのことだったんですね。

確かに、アイコンがバケツだ…(笑)

Googleバケット

単数形:Bucket 複数形:Buckets

日本人的にはではどちらでもバケツなんですけどね(;´∀`)

1 Comment

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください