当试图从Drive导出文件为PDF流(来自gdoc)时,有时会得到一个空的InputStream字节数组(它看起来像是发生在大文件上,但是我无法确认!):Google Drive API在下载/导出文件时获取空的ByteArray
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客户端版本V3-rev69-1.22.0
编辑
通过谷歌的OAuth 2.0游乐场通常要求的作品,但有时会失败,以及(由于没有我的意思它返回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以及)。有解决方案吗?
该文件是否大于5MB? – noogui
嗨noogui,谢谢你的回复。由于它是Google文档,因此Google云端硬盘中没有指定大小。如果我通过Drive UI将它下载为PDF,我会得到一个382 Ko的文件。 –