当尝试从Drive中导出文件作为PDF流(来自gdoc)时,有时我会得到一个空的InputStream字节数组(看起来它适用于大文件,但我无法确认!):
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)。有没有解决这个问题的方法?这是一个众所周知的问题吗?
Drive API:Java客户端版本v3-rev69-1.22.0
修改
通过Google OAuth 2.0 Playground,通常请求可以正常运行,但有时也会失败(失败我的意思是它返回http代码200但是内容为空!)。 使用可恢复媒体下载时,我总是得到一个空的InputStream字节数组(1MB的块):
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 :(得分:1)
如果有人遇到同样的问题:我创建了一张Google云支持的门票,他们发现尽管有200个响应代码,转换仍未成功完成。他们还提到转换在超时时失败,因为文档非常大(转换无法及时完成)。因此,他们建议在转换之前将文档拆分为部分,直到他们修复错误为止。
<强> 修改 强>
Google支持的最新更新:
工程师们仍在调查这个问题,没有ETA来解决问题,也没有取得重大进展。