Google App Engineのバケットにアクセス権を付与(Cloud Storage)
Google App Engineのバケット(Cloud Storage)はアプリケーション(プロジェクト)ごとに
APIを有効にすることで利用ができるようになります。
有効にしたバケット(Cloud Storage)に対して、
別のアプリケーション(プロジェクト)にアクセス権を付与すると1つのバケットを、
他のアプリケーション(プロジェクト)からも操作することができるようになります。
ここでは他のアプリケーション(プロジェクト)にアクセス権を付与する手順をご紹介します。
本投稿でご紹介する別アプリケーションのバケットへWordPressからアクセスする手法は、
アクセスする側(Cloud Storageを有効化していない)のアプリケーションでも、
課金情報登録はしておく必要があります。
これはWordPressがSocket通信を行うことが原因のようです。
SocketAPIは課金登録を行っていない場合には利用できません。
概要
Google App Engineのバケット(Cloud Storage)にアクセス権を付与
Google App Engineのバケット(Cloud Storage)に、
別アプリケーション(プロジェクト)のアクセス権を付与する手順はあまり情報がありません。
おそらくそうしたことをしたいという用途がないからかもしれませんが、
アクセスを付与すると他のアプリケーションと共用することが可能です。
参照する側の「プロジェクト番号」の確認
通常、Google App Engineのアプリケーションでは、
アプリケーションID(プロジェクトID)を利用しますが、この場合「プロジェクト番号」を利用します。
バケット(Cloud Storage)に対してアクセス権を付与するために、
まず参照する側の「プロジェクト番号」を確認します。
「プロジェクト番号」はGoogle Developers Console から確認ができます。
Google Developers Console にアクセスしてアクセス元プロジェクトを選択し詳細を表示します。
詳細表示をしたら上部にプロジェクトIDとプロジェクト番号が表示されています。
このプロジェクト番号をメモしておきます。
参照される側へ「プロジェクト番号」を設定
Google Developers Console にアクセスして、
アクセスされる側のプロジェクト名をクリックして選択します。
プロジェクト詳細が表示されたら、
サイドメニューから[ストレージブラウザ]をクリックし選択します。
画面にデフォルトのバケット([アプリケーション名].appspot.com)が表示されています。
上部の[バケットを追加]をクリックします。
任意のバケット名を入力します。
入力が完了したら[作成]をクリックします。
バケット名はなんでも構いませんが、既に誰かが利用している名前は利用できません。
例:wordpress
[バケット名].storage.googleapis.com ドメインとして、
サブドメイン登録が可能であることが条件になります。
「wordpress」という名前のバケットは既に存在します。
バケット名はCloud Storage内のすべてのプロジェクトで重複しないようにしてください。別の名前を選択して、もう一度お試しください。
ずぐにバケットが作成され、バケット内が表示されます。
ほやほやなのでファイルはありません。
上部の[バケット]をクリックして上位フォルダを表示します。
作成したバケットが一覧に表示されます。
チェックボックスをチェックして[権限を編集]をクリックします。
権限編集ダイアログが表示されます。
最初は自身のプロジェクトに対しての権限が付与されています。
※プロジェクト番号がCloudSotrageの存在するプロジェクトになっています。
権限を追加するために[新しく追加]をクリックします。
一番左のプルダウンでは権限の種類を選択します。
別のプロジェクトを権限追加しますので[プロジェクト]を選択します。
次に真ん中のフィールドには以下のように入力します。
owners-[プロジェクト番号]
一番右のフィールドでは付与する権限を選択します。
フルアクセス権の[オーナー]を選択します。
すべて設定を終えたら[保存]をクリックします。
ウィンドウが閉じられ「ACLを更新しました」と表示されれば完了です。
これで権限の付与の流れは以上です。
別アプリケーションからのファイルアップロード
別のアプリケーションから権限を付与したバケットへファイルのアップロードを行って、
アクセス権の付与が行えているかを確認します。
この確認はWordPress上で行いました。
以下の投稿で実際に行った内容をご紹介しています。
ちなみに、バケットに対して「eye_gmail.png」というファイル名のファイルをアップロードすると、
公開URLは以下のようになります。
http://[バケット名].storage.googleapis.com/[ファイル名]
http://wp-upload-40jp.storage.googleapis.com/eye_gmail.png
さいごに
このようにしてバケットに対して別アプリケーションのオーナーを指定することで、
指定したアプリケーションからバケットに対しての書き込みなどが行えるようになります。
Google™はGoogle Inc. の登録商標(第4478963号及び第4906016号)です。
GoogleロゴはGoogle Inc. の国際登録商標です。
国際登録番号:881006及び926052及び1086299及び1091990及び1145934
公開日: