【发布时间】:2013-10-14 13:08:11
【问题描述】:
我遇到了与this 和this 相同的问题,但在Java 域中。 This 问题也涵盖了我想要的,但由于没有答案,我想我会在这里问它,更详细一点。
我主要是通过编写 Java 应用程序来将文件备份到 Google Drive。正如其他人发现的那样,“内部服务器错误 500”失败是上传的一个很常见的问题,但对于小文件,实现 recommended exponential back-off and retry 工作正常。然而,对于大文件(任何超过几 MB 的文件),失败率高得令人无法接受。在某些情况下,我的故障率远远超过 50%,这使得任何长时间的备份工作实际上都变得不可能。
使用 Google Drive v2 API 插入(上传)文件时,the documentation clearly states 可以使用三种上传类型:简单、多部分和可恢复。通过向端点 URL 添加参数来指定上传类型。显然,我追求的是可恢复上传类型。
问题
似乎没有使用 API 设置此 uploadType 参数的方法。有一个方法调用来设置每个可选参数(如详细的here),但不是一种将uploadType设置为可恢复的方法。没有代码 sn-ps,没有文档,什么都没有。
有点令人困惑的是,还有一个似乎是不相关的“分块”媒体上传模式,这是默认设置,我实际上通过调用 request.getMediaHttpUploader().setDirectUploadEnabled(true) 在我的应用程序中禁用了它,因为它似乎没有任何区别对于上传的可靠性,无论块大小设置为多少,都会大大减慢上传速度。
我即将绕过 API 并手动构建请求,但我真的很想知道是否有其他人首先遇到/解决了这个问题。这是一个如此明显的遗漏,我不敢相信很多人以前没有遇到过。
大家干杯。
大卫。
【问题讨论】:
标签: java file-upload google-drive-api google-api-java-client