頑張らない!でも諦めない!必死にならずにええかげん

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に対して割り当てています。
以下図のようなサブフォルダ構成と手順は同じです。

03_CloudStorage共用WordPress配置・AppEngine

CloudStorage共用WordPress配置・AppEngine

※Applicationの課金情報(Billing)はA,B共に有効である必要があります。
※Application B がBacket Aを参照するにはSocket API(課金登録で自動有効)が必要です。

 

普通に構成した場合にはそれぞれのアプリケーションごとに、
課金設定および有効化して利用します。

01_通常WordPress配置・AppEngine

通常WordPress配置・AppEngine

 

2014/09/20追記
その他の構成パターンを含めて以下でご紹介しています。

 

Cloud Storageのアクセス権設定

CloudStorageのバケットに対してアクセス権を付与する方法は少し癖があります。

また、公式の設定手順といったドキュメントは見つけられませんでした。

実際に設定を行ってみたところうまくいきましたので以下でご紹介しています。

手順としてはバケットの権限設定に、
アクセスさせたいプロジェクトオーナーを設定する流れになります。

 

WordPressから別アプリケーションバケットの指定

WordPressから別アプリケーションのバケットを設定しメディアアップロードを行います。

Google App Engine上にホストしたWordPressで、
Google App Engine for WordPress プラグインを有効化した状態にします。

一連のインストールに関しては以下でご紹介しています。

 

サイドメニュから[App Engine]をクリックします。

12_WordPress・AppEngineプラグイン設定

WordPress・AppEngineプラグイン設定

 

「App Engine」設定メニューが表示されたら「Bucket Name」の欄に、
別アプリケーション上に作成したバケット名を入力します。

なお、デフォルトで表示されているバケット名が、
このWordPressをホストしているアプリケーションIDです。
※ sandbox-wp40jp.appspot.com(Billing有効・API設定すべて無効)

入力が済んだら[変更を保存]をクリックします。

13_バケット名の入力

バケット名の入力

 

設定保存メッセージが表示されれば設定は完了です。

14_設定の保存

設定の保存

 

WordPressメディアアップロード

新しく投稿でも作成して、画像をアップロードします。

正しくアップロードされます。

15_ギャラリー画像アップロード

ギャラリー画像アップロード

 

なお、エラーが発生した場合は正しく保存ができていません。

01_画像アップロードエラー

画像アップロードエラー

 

投稿に画像を挿入します。

16_投稿の作成と公開

投稿の作成と公開

 

公開して表示を確認します。

17_画像の表示

画像の表示

 

これでバケットにアップロードされて公開されました。

 

Cloud Storage(バケット)上のファイル確認

バケット名に指定した別アプリケーションのバケットを開いて確認します。

アップロードしたファイルが保存されて一覧に表示されています。

18_アップロードされたバケット内画像

アップロードされたバケット内画像

 

このように権限設定を正しく行うことで、
アプリケーション間でバケット内のファイルを操作することができます。

 

注意事項

なお、WordPressのバケット名設定は一度サイトを公開したら変更しない方が無難です。

以下のように途中でバケット設定を変更すると過去にアップロード済みの
メディアファイルのプレビューが表示されなくなります。

既に公開済みファイルのURLは変わりませんので、
サイト表示上は影響ありませんが、管理がしにくくなります。
※プレビュー右画像

15_ギャラリー画像アップロード

ギャラリー画像アップロード

 

おまけ

バケット名はCloudStorage全体で重複しない名前しか利用することができません。

バケット名はCloud Storage内のすべてのプロジェクトで重複しないようにしてください。別の名前を選択して、もう一度お試しください。

19_バケット名重複エラー

バケット名重複エラー

 

それだけでなく「goog」で始まるバケット名は作成できません。
予約語のような扱いになっています。

バケット名を「goog」で始めることはできません

20_googバケット名予約語扱い

googバケット名予約語扱い

 

プロモーション(btm)

Google or AdMax Promotion (it)

さいごに

このようにして異なるアプリケーション間でも、
バケットへアクセス権を付与することでファイル操作をすることができるようになります。

共通化したファイルなどを両方のアプリケーションにホストするよりも、
1つのアプリケーション上で一元管理できて便利かもしれません。

 


*本ページ内に記載されされた各社ブランド、サービス名、商標、登録商標については、
各社ブランドのロゴや商標等に関する帰属についてをご確認ください


最後までお読みいただきありがとうございました。

アイキャッチ画像に利用させて頂いております、各社ブランドのロゴやシンボルに関しては、
各社ブランドのロゴや商標等に関する帰属についてをご確認頂けますようお願い致します。

AdMax Promotion

ブログ記事のご紹介
すべて展開 | すべて省略

Rakuten Promotion

ページ
すべて展開 | すべて省略

 - Google

  関連記事