レンタルサーバー選びの迷いを解決!全力サポートします

Google or AdMax Promotion (srv)

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よりも小さく設定されているために発生している可能性もあります。

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

画像アップロードエラー

 

このエラーはGoogle App Engineが採用しているファイル管理のバケットに対して、
画像のアップロード(保存)が行えない為に発生しています。

この対応にはプラグインを利用することで対応が可能です。

なお、WordPressに限らず、
Google App Engineのファイル保存領域である
Cloud Storageの利用には課金情報の登録が必要です。

WordPressの利用においてCloudSQLの課金登録を済ませていると思いますので、
課金登録を行ったアプリケーション(プロジェクト)では、
Cloud Storageの利用が行える状態になっているはずです。

 

GitHubよりダウンロードしてきたWordPressであれば、
既に「Google App Engine for WordPressプラグイン」が含まれています。

その為、プラグインを有効化することですぐに利用が可能になります。

02_Google App Engine for WordPressプラグイン有効化

Google App Engine for WordPressプラグイン有効化

 

プラグインを有効化しました。

03_Google App Engine for WordPressプラグイン有効

Google App Engine for WordPressプラグイン有効

 

[設定]-[App Engine]を選択して、アップロード先に指定されているバケット名を確認します。
通常は、未設定な状態になっているはずです。

未設定はデフォルトバケット(アプリケーションのデフォルト)を意味します。
※便宜上デフォルトバケット名を入力しています。

04_Google App Engine 設定・バケット名

Google App Engine 設定・バケット名

 

デフォルトバケット名はDeveloperConsoleを開き、
サイドメニューの[ストレージブラウザ]を開くと確認できます。

05_DeveloperConsoleバケット名確認

DeveloperConsoleバケット名確認

 

プロモーション

Google or AdMax Promotion (srvpos)

投稿と画像のアップロード確認

ここではデフォルトバケットへアップロードする場合と、
サブフォルダを作成する場合でご紹介します。

 

デフォルトバケットにアップロードした場合

ここではデフォルトバケットをプラグインに設定してアップロードしています。

プラグインの設定を確認したら投稿を作成してみます。

06_投稿の作成

投稿の作成

 

画像のアップロード挿入を行います。
正常にアップロードが行えます。

07_画像のアップロード(正常)

画像のアップロード(正常)

 

サイトの表示も正しく行われました。

08_画像の表示

画像の表示

 

アップロードされたファイルはバケット内に保存されています。

09_バケット内にアップロードされたファイル

バケット内にアップロードされたファイル

 

なお、ここでバケットにアップロードした画像ファイルのURLは以下のようになります。

http://[アプリケーションドメイン名].storage.googleapis.com/[ファイル名]

http://sandbox-rensrv.appspot.com.storage.googleapis.com/eye_android.png

これによって、デフォルトバケット名を指定した場合、

Cloud Storageのサブドメインが作成され、そのドメインルートに画像パスが付与されます。

 

デフォルトバケットにフォルダを作成してアップロードした場合

バケットには任意の名前でフォルダを作成することができます。

10_バケット内フォルダの作成

バケット内フォルダの作成

 

バケット内にフォルダが作成されました。

11_作成済みフォルダ

作成済みフォルダ

 

プラグインのバケットに対して「バケット名/フォルダ名」で設定します。

12_サブフォルダのバケット指定

サブフォルダのバケット指定

 

画像のアップロードは正常にアップロードが行えますが、
元のバケット名を指定して既にアップロードされていたファイルは、
メディアライブラリから確認ができなくなります。

バケットの変更は途中からは行わない方がいいでしょう。

13_画像アップロード可能・旧バケット参照不可

画像アップロード可能・旧バケット参照不可

 

サイトの画像表示は問題なく旧バケットの画像も表示できます。

14_投稿表示では画像は有効

投稿表示では画像は有効

 

フォルダを指定してアップロードした画像もバケットに表示されています。

15_バケットフォルダ内のアップロード画像

バケットフォルダ内のアップロード画像

 

なお、ここでバケットにアップロードした画像ファイルのURLは以下のようになります。

http://[アプリケーションドメイン名].storage.googleapis.com/[フォルダ名]/[ファイル名]

http://sandbox-rensrv.appspot.com.storage.googleapis.com/wp-upload/eye_google.png

 

同名ファイルのアップロード時エラー

なお、同一名のファイル名で画像をアップロードした際にはエラーが発生します。

HTTPエラー。

16_同名ファイルアップロードエラー

同名ファイルアップロードエラー

 

年月ベースフォルダ整理設定

同名ファイルがエラーになることから、年月別のフォルダ整理を有効化したいところですが、
WordPress側からは現時点でバケット内のフォルダ作成ができないことから、

[アップロードしたファイルを年月ベースのフォルダに整理]のチェックボックスを、
チェックして保存した場合でも、チェックが自動的に外されてしまいます。

17_フォルダ管理オプション有効化不可

フォルダ管理オプション有効化不可

 

未課金アプリケーションからのアクセス

補足としてCloud Storageは別のアプリケーション(プロジェクト)からも、
参照ができるように権限の設定が可能です。

その為、別の未課金アプリケーション(プロジェクト)から、
課金設定済みアプリケーション(プロジェクト)のCloud Storageを参照先に設定を試みました。

しかし結果として、未課金アプリケーション(プロジェクト)では、
Cloud Storageに対してアクセスができないという結果になりました。

アップロード中にエラーが発生しました。後ほど再度お試しください。

18_課金未設定アプリからのアップロード

課金未設定アプリからのアップロード

 

この動作は課金未設定アプリケーション(プロジェクト)では、
Socket APIの利用が認められていない為なのか、
WordPressのプラグインインストールなどもダッシュボードからは行えません。

それと同様にCloud Storageバケットに対して、
そもそもアクセスができない状態になっていると考えられます。

WordPressを利用する際にはCloud SQLを利用されることと思いますが、
やはり”アプリケーションごと”に課金登録を行う必要がありそうです。

あわよくば、1アプリケーションに課金を有効にして、
他のアプリケーションから参照できればと思ったのですが、
おそらく通信手段として制限を受けている印象です。

 


AdMax Promotion

公開日:

コンテンツナビ
すべて展開 | すべて省略

AdMax Promotion

カテゴリ
すべて展開 | すべて省略

QRコードからもこのURLを開けます。