首页 > 技术文章 > 天无绝人之路

badnumber 2019-10-18 02:45 原文

家里的网络慢,尤其是上传,公司的网络快。所以我把大文件都拿到公司的网络去上传到百度盘。

但问题是一点点来的。

开始用Chrome上传,没问题。太平无事N天。

忽然不行了,上传约30多M就不动了,然后失败。

改用ie 8上传,又可以了。太平无事N天。

忽然公司把ie更新到10,又不行了。

装个VirtualBox,然后再装个带ie 8的windows虚拟机,还是不行。改装ie 9, 10。10又行了。太平无事N天。

这样持续了一段时间,忽然又不行了。

尝试限制带宽,vboxmanage bandwidthctl win7 set Limit --limit 1M,7000k, 5000k,。。。还是不行。

找了个开源的Baidupcs-go,命令行的,找了个带GUI的,虚拟机里起不来,浏览器里显示空白。装在物理机上,可以登录,但上传也不行。

改用命令行的,物理机上无法登陆。

在虚拟机里用命令行的Baidupcs-go,可以登录,上传,先用缺省的分片上传,传了一半400 Bad request。

禁用分片上传,终于行了。

所以,天无绝人之路。

唯一的缺陷,是命令行程序有bug,大于2G的文件不能禁用分片上传。看了源码,虽然不懂Go语言,但毕竟和python什么的差不多的路数,结合出错栈的语句定位,估计是一句left := int(fb.Left()) 有问题,应该改为left := int64(fb.Left())。但是要改,Go语言不是脚本,要编译的。还得看点资料调一下。

 

p.s. 又发现有几个文件,不分片上传很快,但有几个文件却很慢。而且,好容易100%了,又从头开始了,昏倒。但这几个文件尝试分片上传,只见“进进退退”,一会儿显示已上传100M,一会儿又退到90M,再过一会儿,显示120M......这样最后终于还是上传成功了!

 

推荐阅读