Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google drive api 谷歌驱动无限循环,可恢复上传,网络不稳定_Google Drive Api - Fatal编程技术网

Google drive api 谷歌驱动无限循环,可恢复上传,网络不稳定

Google drive api 谷歌驱动无限循环,可恢复上传,网络不稳定,google-drive-api,Google Drive Api,当我使用RESTAPI将一个文件上传到谷歌硬盘时,我发现由于网络不稳定,每隔几秒钟HTTP连接就会重置一次(很明显,谷歌的基础设施很强大,但也许你不知道什么是共产主义,什么是GFW,我们可怜的中国人必须以不同的方式克服) 问题是,如果数据块的大小小于250kb,Google的服务器将丢弃她收到的数据块(这个值是根据我的测试估计的)。因此,如果网络在每次达到该值之前断开连接,我们只需反复上传相同的数据块 我认为,唯一的解决方案是通过第三台服务器上传,比如我们在GAE上的程序,它从不丢弃任何接收到的

当我使用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