gpt4 book ai didi

java - 下载/导出文件时 Google Drive API 获取空 ByteArray

转载 作者:行者123 更新时间:2023-11-30 06:47:38 24 4
gpt4 key购买 nike

当尝试将文件从云端硬盘导出为 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 的 block ):

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)。有解决办法吗?

最佳答案

如果有人遇到同样的问题:我向 Google Cloud 支持创建了一张票证,他们发现尽管有 200 响应代码,但转换并未成功完成。他们还提到转换超时失败,因为文档很大(转换无法及时完成)。因此,他们建议作为一种解决方法,在转换之前将文档拆分为多个部分,直到他们修复了自己这边的错误。

编辑

Google 支持的最新更新:

工程师仍在调查此问题,尚无解决方案的预计时间,也没有取得重大进展。

关于java - 下载/导出文件时 Google Drive API 获取空 ByteArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43414252/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com