Google App Engineのバケットを他アプリのWordPressから参照する設定
2014/11/22
Google App Engineでアプリケーションを作成したりWordPressを公開している際に、
異なるアプリケーション(プロジェクト)から既に利用している、
別アプリケーション(プロジェクト)のCloud Storageバケットにあるデータを参照し、
アプリケーション間で共有したいような場合もあるかもしれません。
また別アプリケーションのバケットにWordPressの画像アップロードをすることも可能です。
なお、本投稿で表記する「アプリケーション(プロジェクト)」という表現は、
Google App Engine アプリケーションOverView と Google Developers Console で、
表現が異なっているために併記しています。
Google App Engine アプリケーションOverViewではアプリケーションIDとしているものが、
Google Developers ConsoleではプロジェクトIDと呼ばれています。
どちらも同じもので双方で同じアプリケーションの操作が行えます。
本投稿でご紹介する別アプリケーションのバケットへWordPressからアクセスする手法は、
アクセスする側(Cloud Storageを有効化していない)のアプリケーションでも、
課金情報登録はしておく必要があります。
これはWordPressがSocket通信を行うことが原因のようです。
SocketAPIは課金登録を行っていない場合には利用できません。
Google App Engineのバケットを他アプリのWordPressから参照する設定
Cloud Storageは従量制の課金サービスである為、
別アプリケーションからCloudSQLを参照することでもトラフィック量は変わらないと思いますが、
予期せぬ課金が発生しないとも限りません。
ご利用は自己責任でお願いします。
Google Cloud Storage – クラウド バックアップ、クラウド データベース、オンライン ストレージ — Google Cloud Platform (引用抜粋)
ストレージの料金体系
GB 単位/月
ストレージの料金体系(GB 単位/月) 標準ストレージ DRA(中可用性永続)
ストレージ$0.026 $0.02 ネットワーク
月間使用量 ネットワーク(下り) – アメリカ
および EMEA*(GB 単位)ネットワーク(下り) – アジア太平洋
(GB 単位)ネットワーク(上り) 0~1 TB $0.12 $0.21 無料 1~10 TB $0.11 $0.18 無料 ~100 TB $0.08 $0.15 無料 追加の保存容量 お問い合わせください お問い合わせください * ヨーロッパ、中東、アフリカ(EMEA)
WordPress構成イメージ
CloudStorageのバケットを共用してWordPressを構成した場合のイメージを図にしておきます。
Application A側で作成済のCloudStorageのバケットを
Application B側でも利用するイメージです。
※今回の例では以下の図とは異なって、
新しくバケットを作成してApplication Bに対して割り当てています。
以下図のようなサブフォルダ構成と手順は同じです。
※Applicationの課金情報(Billing)はA,B共に有効である必要があります。
※Application B がBacket Aを参照するにはSocket API(課金登録で自動有効)が必要です。
普通に構成した場合にはそれぞれのアプリケーションごとに、
課金設定および有効化して利用します。
2014/09/20追記
その他の構成パターンを含めて以下でご紹介しています。
Cloud Storageのアクセス権設定
CloudStorageのバケットに対してアクセス権を付与する方法は少し癖があります。
また、公式の設定手順といったドキュメントは見つけられませんでした。
実際に設定を行ってみたところうまくいきましたので以下でご紹介しています。
手順としてはバケットの権限設定に、
アクセスさせたいプロジェクトオーナーを設定する流れになります。
WordPressから別アプリケーションバケットの指定
WordPressから別アプリケーションのバケットを設定しメディアアップロードを行います。
Google App Engine上にホストしたWordPressで、
Google App Engine for WordPress プラグインを有効化した状態にします。
一連のインストールに関しては以下でご紹介しています。
サイドメニュから[App Engine]をクリックします。
「App Engine」設定メニューが表示されたら「Bucket Name」の欄に、
別アプリケーション上に作成したバケット名を入力します。
なお、デフォルトで表示されているバケット名が、
このWordPressをホストしているアプリケーションIDです。
※ sandbox-wp40jp.appspot.com(Billing有効・API設定すべて無効)
入力が済んだら[変更を保存]をクリックします。
設定保存メッセージが表示されれば設定は完了です。
WordPressメディアアップロード
新しく投稿でも作成して、画像をアップロードします。
正しくアップロードされます。
なお、エラーが発生した場合は正しく保存ができていません。
投稿に画像を挿入します。
公開して表示を確認します。
これでバケットにアップロードされて公開されました。
Cloud Storage(バケット)上のファイル確認
バケット名に指定した別アプリケーションのバケットを開いて確認します。
アップロードしたファイルが保存されて一覧に表示されています。
このように権限設定を正しく行うことで、
アプリケーション間でバケット内のファイルを操作することができます。
注意事項
なお、WordPressのバケット名設定は一度サイトを公開したら変更しない方が無難です。
以下のように途中でバケット設定を変更すると過去にアップロード済みの
メディアファイルのプレビューが表示されなくなります。
既に公開済みファイルのURLは変わりませんので、
サイト表示上は影響ありませんが、管理がしにくくなります。
※プレビュー右画像
おまけ
バケット名はCloudStorage全体で重複しない名前しか利用することができません。
バケット名はCloud Storage内のすべてのプロジェクトで重複しないようにしてください。別の名前を選択して、もう一度お試しください。
それだけでなく「goog」で始まるバケット名は作成できません。
予約語のような扱いになっています。
バケット名を「goog」で始めることはできません
さいごに
このようにして異なるアプリケーション間でも、
バケットへアクセス権を付与することでファイル操作をすることができるようになります。
共通化したファイルなどを両方のアプリケーションにホストするよりも、
1つのアプリケーション上で一元管理できて便利かもしれません。
Google™はGoogle Inc. の登録商標(第4478963号及び第4906016号)です。
GoogleロゴはGoogle Inc. の国際登録商標です。
国際登録番号:881006及び926052及び1086299及び1091990及び1145934
関連記事
-
Google™サイト内検索(カスタム検索エンジンv2)のデザイン設定(テーマ)
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
(iPhone)Google+でブロックしているユーザーを確認する
Google or AdMax Promotion(cel) 禁断の機能がau公 …
-
Google™カスタム検索エンジンのスコアは999以下で設定した方が無難なようだ
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
Google™サイト内検索(カスタム検索エンジンv2)の統計情報とログ設定
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
(無料編)Gmail™サブメールアドレスの設定方法
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
Google+へAndroidから自動バックアップされた画像を一括して削除・保存
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
(全幅)Google™サイト内検索(カスタム検索エンジンv2)のレイアウト導入方法と実際動作
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
Google+プロフィールの名前付けポリシーで指摘受け対応しました
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
(PC)Google+で不適切な投稿をするユーザーをスパム報告する
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
.webp画像の.png,.jpg等で保存する方法(表示する方法)
Google or AdMax Promotion(it) 禁断の機能がau公式 …