2017-04-14 12 views
0

ドライブからPDFストリーム(gdoc)からファイルをエクスポートしようとすると、空のInputStreamバイト配列が取得されることがあります私は確認できません!):ファイルをダウンロード/エクスポートするときに空のByteArrayを取得するGoogleドライブAPI

InputStream mediaContent = service.files().export(fileId, mimetype).executeMediaAsInputStream(); 
if(!(mediaContent.available()>0)) { 
    throw new IOException("Media content empty, bytes expected"); 
} 

例外はスローされません。ドキュメントに指定された制限がありません(https://developers.google.com/drive/v3/web/manage-downloads)。この問題の解決策はありますか?それは既知の問題ですか?

ドライブのAPI:JavaクライアントのバージョンGoogleのOAuth 2.0の遊び場を通じV3-rev69-1.22.0

EDIT

通常リクエストは動作しますが、同様時には失敗(失敗によって私は意味HTTPコード200が返されますが、空のコンテンツが返されます)。 再開可能なメディアのダウンロードを使用しているとき、私は常に空のInputStreamのバイト配列(1メガバイトのチャンク)を取得:

Drive.Files.Export request = service.files().export(fileId, mimetype); 
request.getMediaHttpDownloader().setProgressListener(new CustomProgressListener()); 
request.getMediaHttpDownloader().setChunkSize(Constants.CHUNK_SIZE); 
request.getMediaHttpDownloader().setDirectDownloadEnabled(false); 
InputStream mediaContent = request.executeMediaAsInputStream(); 

をしかし、それは(だけでなく、戻りコード200)任意の例外をスローしません。解決策はありますか?

+0

ファイルが5MBを超えていますか? – noogui

+0

こんにちは、noogui、あなたの返信いただきありがとうございます。 Googleドキュメントのドキュメントなので、Googleドライブにはサイズは指定されていません。ドライブUIでPDFとしてダウンロードすると、382 Koのファイルが取得されます。 –

答えて

1

誰かが同じ問題に遭遇した場合:Google Cloud Supportへのチケットを作成しましたが、200の応答コードでも変換が正常に完了していないことがわかりました。彼らはまた、文書が非常に大きい(変換が時間通りに完了できなかった)ため、変換がタイムアウトに失敗したと述べました。彼らは、バグを彼らの側で修正するまで、変換前にドキュメントを分割するための回避策として推奨しています。

EDIT Googleサポートから

最終更新日:

エンジニアはまだこの問題を調査しているが、解決のためのETAがないと有意な進展はなかったです。

+0

あなたの調査結果とサポートチケットの結果をコミュニティに共有してくれてありがとう。これについて一般公開されている問題はありますか?もしそうなら、答えにリンクを投稿することはできますか? – Nicholas

+0

こんにちはニコラス。私が知る限り、現在は公的な問題はありません。このスレッドはGoogleが作成した場合に更新する予定です。 –

関連する問題