GAEかGCEかにもよりますよね。あと、GCSへのアップロードにどういったプラグイン、コードを使われているのか書かないと状況の再現のしようがないと思います。
>Daisuke Takahashi様
ご指摘ありがとうございます。
今回wordpressはGAEプロジェクトにてデプロイしております。
GCSへのアップロードには Google App Engine for WordPress ver1.6 プラグインを使用し、設定画面でGCSフォルダ名を指定してアップロードを試みております。
このファイルタイプはセキュリティの観点から許可されていません
ファイルタイプが書かれていないので、アテズッポですが
日本語の問題というより、ファイルタイプが弾かれているのではないですか?
ユーザーに権限がないとか、
current_user_can( 'unfiltered_upload' )
訂正:権限は関係ないですね 英語ファイル名でうまくいくなら
試しに、日本語資料.pdf というファイルを作成し、3つ程のワードプレス(シングル)でアップロードのテストを行ってみましたが、
日本語のファイル名は、2サイトで、多分md5で処理されたファイル名に置換されるようです。
1サイトは、URLエンコードで処理されていました。(詳しくは調べていませんが)
いずれにしろ、日本語でも動作しています。
テストしたテーマは、
https://wordpress.org/themes/raindrops/
というテーマです。
よろしければ、このテーマを使用した場合の結果を教えていただけるとうれしいです。
>nobita様
レスありがとうございます。
アップロードしたファイルは「さんぷる.jpg」(58KB)、「日本語.pdf」(3.4MB)にて検証しております。
早速raindropsテーマに切り換え試してみましたが下記同様のエラーでした。
念のためGoogle App Engine for WordPressプラグイン以外を外した場合も試しましたが同様でした。
“=?UTF-8?B?44GV44KT44G344KLMDMuanBn?=” のアップロードに失敗しました。
このファイルタイプはセキュリティの観点から許可されていません。
エラー文字列からmd5変換はされているようなのですが、前後にutf-8や”=”、”?”といった文字列がついていますね。
GCSは作成してから権限など変更はしておりません。
試しに、禁止されているファイルタイプ svg で試してみましたが
arrow-d-r-black.svg
このファイルタイプはセキュリティの観点から許可されていません。
クエリ―文字列みたいなものは、ついていないですね。
サーバーの問題かもしれませんね。
だいぶ前に、クラウドサービスでデプロイしたWordPressを使った時に、
特定のテーマがエラーになるという事がありました。サービスの提供側で特定のPHP関数を使っている場合は、使用できないようにする措置が取られていたようで、
ワードプレス.org が提供しているまんまをそのまま使っていない場合もあると思うので、
別な環境で試してみてはどうでしょうか?
アップロードしたファイルのファイル名の確認や操作する場合は
sanitize_file_name というフィルターが使えると思います
>nobita様
お試しいただきありがとうございます。
クエリ―文字列みたいなものは、日本語ファイル名をアップロードした際に表示されます。
アルファベットファイル名だとアップは問題なくおこなえ、svgもmime-types設定すれば大丈夫です。
だいぶ前に、クラウドサービスでデプロイしたWordPressを使った時に、
特定のテーマがエラーになるという事がありました。サービスの提供側で特定のPHP関数を使っている場合は、使用できないようにする措置が取られていたようで、
ワードプレス.org が提供しているまんまをそのまま使っていない場合もあると思うので、別な環境で試してみてはどうでしょうか?
そんな措置があったのですね。
今回は下記googleが提供しているWPのセットを日本語化して使用しており、ほぼデフォルトの状態で今回の日本語ファイル名がアップできない状態です。
http://googlecloudplatform.github.io/appengine-php-wordpress-starter-project/
アップロードしたファイルのファイル名の確認や操作する場合は
sanitize_file_name というフィルターが使えると思います
sanitize_file_nameですね。勉強になります。
フィルター調べて、アップロード時のファイル名など調査してみたいと思います。
日本語.svg でも同様でした。
Google App Engine for WordPress ver1.6 というプラグインが何かやっているかもしれないので、外してみるとかも試してみてはどうでしょう
=?UTF-8?B?44GV44KT44G344KLMDMuanBn?= は「さんぷる03.jpg」が base64 エンコードされたもので、この処理は ファイルが WordPress 領域にアップロードされる前に行われているものと思われます。
エラー出力のタイミング自体が sanitize_file_name() のロジックよりも前(WP Multibyte Patch の処理よりも前)なので、さらに上流の wp_handle_upload_prefilter フック辺りで変名処理すればアップロードできるようになるかもしれません。
恐らく、GAE・GCS 自体もしくは、Google App Engine for WordPress の処理が原因かと思われますが、そちらの方面の情報は確認されましたか?
>nobita様
日本語.svgでのテストもありがとうございます。
Google App Engine for WordPressがGCSのバケットへ紐づけているので今のところ使用せざるをえません。。。
>Seisuke Kuraishi 様
情報ありがとうございます。
勉強になります。
wp_handle_upload_prefilter 、Google App Engine for WordPressのフォーラムなども確認し、変名処理チャレンジしてみます。
https://wordpress.org/support/plugin/google-app-engine