6 月 27 日以降、アプリがファイルを Google ドライブにアップロードしようとすると、ファイルのタイトルが ASCII で記述されていない場合、サーバーが 503 エラー (下記) を返すようになりました。
"Error Domain=com.google.HTTPStatus Code=503 "The operation couldn’t be completed. (com.google.HTTPStatus error 503.)""
問題を調査したところ、タイトルがASCIIで書かれている場合、エラーは発生しないことがわかりました。「日本語.txt」「中文简体繁体.txt」「한국어.txt」「русский язык.txt」などのファイル名もテストしましたが、すべて上記のエラーで終了します。もちろん、ファイル名を ascii テキストに変更すると、エラーは消えます。
私はGoogleドライブへのアクセスにgoogle-api-objectivec-clientライブラリを使用していますが、アップロード時に使用されるGTLDriveFileのtitleプロパティを設定するだけです。
GTLDriveFile *file = [GTLDriveFile object];
file.title = title;
私たちのコードは何ヶ月も正常に機能していました。
ファイルをサーバーにアップロードする際に間違いがある可能性はありますか? そうでない場合、問題の回避策はありますか? どんな助けでも大歓迎です。ありがとう。
PSライブラリに含まれる「DriveSample」アプリでも問題をテストしました。アプリの「アップロード」機能を使用しても同様の問題が発生しました。
6月30日(追記)
ファイル名の問題は、「Client Library for iOS」だけにあるようです。「Client Library for Python」をテストしたところ、ASCII 以外のタイトルで問題なく動作することがわかりました。
テストに使用した「DriveSample」アプリのメンテナンスが不十分な場合に備えて、検証用に「DrEdit」という別のサンプルを Google からダウンロードしました。残念ながら、"DrEdit" も、アップロード時に非 ASCII タイトルを処理できませんでした。
次に、アップロードのために各ライブラリがアクセスする URL を確認しました。
Python:
https://www.googleapis.com/upload/drive/v2/files?uploadType=resumable&alt=json
Objective-C:
https://www.googleapis.com/upload/rpc?uploadType=resumable&prettyPrint=false
Python は、Google Drive API ドキュメントとまったく同じ URL を使用します。ただし、Objective-C ライブラリは、文書化されていない別の URL を使用しています。
ライブラリに問題がなければ、Objective-C ライブラリ アクセスの URL が非 ASCII タイトル変換の問題を引き起こす可能性はありませんか? サーバー間の通信障害か何か?
それでも、どんな助けも大歓迎です。ありがとう!