Google App EngineのWordPress画像アップロードを有効化する
Google App Engineへ設置したWordPressで画像アップロードする場合に、
エラーとなってしまいアップロードができない場合があります。
このエラーを解消するにはプラグインの導入で回避できます。
プラグイン設定手順と動作についてご紹介します。
ここではGitHubからダウンロードを行った、
Google App Engine用WordPressを例にご紹介します。
概要
Google App EngineのWordPress画像アップロードを有効化する
Google App Engineに対してWordPressを導入した場合に、
既に多くのサイトで情報が提供されていますが、
画像のアップロードがエラーになります。
ファイルが空のようです。中身のあるファイルをアップロードしてください。このエラーはphp.iniファイルでアップロードができない設定になっているか、post_max_sizeがupload_max_sizeよりも小さく設定されているために発生している可能性もあります。
このエラーはGoogle App Engineが採用しているファイル管理のバケットに対して、
画像のアップロード(保存)が行えない為に発生しています。
この対応にはプラグインを利用することで対応が可能です。
なお、WordPressに限らず、
Google App Engineのファイル保存領域である
Cloud Storageの利用には課金情報の登録が必要です。
WordPressの利用においてCloudSQLの課金登録を済ませていると思いますので、
課金登録を行ったアプリケーション(プロジェクト)では、
Cloud Storageの利用が行える状態になっているはずです。
GitHubよりダウンロードしてきたWordPressであれば、
既に「Google App Engine for WordPressプラグイン」が含まれています。
その為、プラグインを有効化することですぐに利用が可能になります。
プラグインを有効化しました。
[設定]-[App Engine]を選択して、アップロード先に指定されているバケット名を確認します。
通常は、未設定な状態になっているはずです。
未設定はデフォルトバケット(アプリケーションのデフォルト)を意味します。
※便宜上デフォルトバケット名を入力しています。
デフォルトバケット名はDeveloperConsoleを開き、
サイドメニューの[ストレージブラウザ]を開くと確認できます。
投稿と画像のアップロード確認
ここではデフォルトバケットへアップロードする場合と、
サブフォルダを作成する場合でご紹介します。
デフォルトバケットにアップロードした場合
ここではデフォルトバケットをプラグインに設定してアップロードしています。
プラグインの設定を確認したら投稿を作成してみます。
画像のアップロード挿入を行います。
正常にアップロードが行えます。
サイトの表示も正しく行われました。
アップロードされたファイルはバケット内に保存されています。
なお、ここでバケットにアップロードした画像ファイルのURLは以下のようになります。
http://[アプリケーションドメイン名].storage.googleapis.com/[ファイル名]
http://sandbox-rensrv.appspot.com.storage.googleapis.com/eye_android.png
これによって、デフォルトバケット名を指定した場合、
Cloud Storageのサブドメインが作成され、そのドメインルートに画像パスが付与されます。
デフォルトバケットにフォルダを作成してアップロードした場合
バケットには任意の名前でフォルダを作成することができます。
バケット内にフォルダが作成されました。
プラグインのバケットに対して「バケット名/フォルダ名」で設定します。
画像のアップロードは正常にアップロードが行えますが、
元のバケット名を指定して既にアップロードされていたファイルは、
メディアライブラリから確認ができなくなります。
バケットの変更は途中からは行わない方がいいでしょう。
サイトの画像表示は問題なく旧バケットの画像も表示できます。
フォルダを指定してアップロードした画像もバケットに表示されています。
なお、ここでバケットにアップロードした画像ファイルのURLは以下のようになります。
http://[アプリケーションドメイン名].storage.googleapis.com/[フォルダ名]/[ファイル名]
http://sandbox-rensrv.appspot.com.storage.googleapis.com/wp-upload/eye_google.png
同名ファイルのアップロード時エラー
なお、同一名のファイル名で画像をアップロードした際にはエラーが発生します。
HTTPエラー。
年月ベースフォルダ整理設定
同名ファイルがエラーになることから、年月別のフォルダ整理を有効化したいところですが、
WordPress側からは現時点でバケット内のフォルダ作成ができないことから、
[アップロードしたファイルを年月ベースのフォルダに整理]のチェックボックスを、
チェックして保存した場合でも、チェックが自動的に外されてしまいます。
未課金アプリケーションからのアクセス
補足としてCloud Storageは別のアプリケーション(プロジェクト)からも、
参照ができるように権限の設定が可能です。
その為、別の未課金アプリケーション(プロジェクト)から、
課金設定済みアプリケーション(プロジェクト)のCloud Storageを参照先に設定を試みました。
しかし結果として、未課金アプリケーション(プロジェクト)では、
Cloud Storageに対してアクセスができないという結果になりました。
アップロード中にエラーが発生しました。後ほど再度お試しください。
この動作は課金未設定アプリケーション(プロジェクト)では、
Socket APIの利用が認められていない為なのか、
WordPressのプラグインインストールなどもダッシュボードからは行えません。
それと同様にCloud Storageバケットに対して、
そもそもアクセスができない状態になっていると考えられます。
WordPressを利用する際にはCloud SQLを利用されることと思いますが、
やはり”アプリケーションごと”に課金登録を行う必要がありそうです。
あわよくば、1アプリケーションに課金を有効にして、
他のアプリケーションから参照できればと思ったのですが、
おそらく通信手段として制限を受けている印象です。
Google™はGoogle Inc. の登録商標(第4478963号及び第4906016号)です。
GoogleロゴはGoogle Inc. の国際登録商標です。
国際登録番号:881006及び926052及び1086299及び1091990及び1145934
公開日: