我遇到了与this和this相同的问题,但在 Java 域中。这个问题也涵盖了我想要的东西,但由于没有答案,我想我会在这里问它,并提供更多细节。
我大部分的方式是通过编写一个 Java 应用程序来将文件备份到 Google Drive。正如其他人所发现的那样,“内部服务器错误 500”故障是上传中非常常见的问题,但对于小文件,实施推荐的指数回退和重试可以正常工作。然而,对于大文件(任何超过几 MB 的文件),失败率高得令人无法接受。在某些情况下,我的故障率远远超过 50%,这使得任何长时间的备份工作实际上都变得不可能。
使用 Google Drive v2 API 插入(上传)文件时,文档明确指出三种上传类型可用:简单、多部分和可恢复。通过向端点 URL 添加参数来指定上传类型。显然,我所追求的是可恢复的上传类型。
问题
似乎没有使用 API 设置此 uploadType 参数的方法。有一个方法调用来设置每个可选参数(如这里详述),但不是一种将 uploadType 设置为可恢复的方法。没有代码片段,没有文档,什么都没有。
有点令人困惑的是,还有一种似乎不相关的“分块”媒体上传模式,这是默认设置,我实际上通过调用在我的应用程序中禁用了request.getMediaHttpUploader().setDirectUploadEnabled(true)
它,因为它似乎对上传的可靠性没有任何影响,无论块大小设置为什么,它都会大大减慢上传速度。
我即将绕过 API 并手动构建请求,但我真的很想知道是否有其他人首先遇到/解决了这个问题。这是一个如此明显的遗漏,我不敢相信很多人以前没有遇到过。
祝大家欢呼。
大卫。