Google drive api 谷歌驱动无限循环,可恢复上传,网络不稳定
当我使用RESTAPI将一个文件上传到谷歌硬盘时,我发现由于网络不稳定,每隔几秒钟HTTP连接就会重置一次(很明显,谷歌的基础设施很强大,但也许你不知道什么是共产主义,什么是GFW,我们可怜的中国人必须以不同的方式克服) 问题是,如果数据块的大小小于250kb,Google的服务器将丢弃她收到的数据块(这个值是根据我的测试估计的)。因此,如果网络在每次达到该值之前断开连接,我们只需反复上传相同的数据块 我认为,唯一的解决方案是通过第三台服务器上传,比如我们在GAE上的程序,它从不丢弃任何接收到的数据Google drive api 谷歌驱动无限循环,可恢复上传,网络不稳定,google-drive-api,Google Drive Api,当我使用RESTAPI将一个文件上传到谷歌硬盘时,我发现由于网络不稳定,每隔几秒钟HTTP连接就会重置一次(很明显,谷歌的基础设施很强大,但也许你不知道什么是共产主义,什么是GFW,我们可怜的中国人必须以不同的方式克服) 问题是,如果数据块的大小小于250kb,Google的服务器将丢弃她收到的数据块(这个值是根据我的测试估计的)。因此,如果网络在每次达到该值之前断开连接,我们只需反复上传相同的数据块 我认为,唯一的解决方案是通过第三台服务器上传,比如我们在GAE上的程序,它从不丢弃任何接收到的
顺便说一句,Google Drive官方PC客户端在这种情况下无法正常工作。Google文档确认256kb为最小块大小。如果一个区块失败,检查响应头以查看接收到多少,然后从该点继续。事实上,我的问题是,如果我上传2Mb文件,第一步我告诉她这次我将上传2Mb,但是,只有200Kb被发送,网络断开(TCP重置),所以我向她发出一个新的HTTP请求,当然,我应该问她上次收到了多少,然后她告诉我“我当然收到了200Kb,但不到256kb,我已经丢弃了它们,现在你重新开始”。但是,每次断开连接之前,我都无法达到极限值。。。明白吗(你能用你看到的实际http请求和响应标题更新你的问题吗。啊哈,http语言比我糟糕的英语更容易理解,对吧?但我已经使用和测试了很长一段时间可恢复上传,一开始我不抱任何希望。无论如何,谢谢你让我知道谷歌为什么丢弃<256KB的数据,a。)这是因为
n
必须是256KB的倍数。HTTP/1.1308 Resume completed\r\n内容长度:0\r\n范围:n-2000000\r\n\r\n