最近git-clone 跟在 github下载别人预编译文件无法断点续传

git conle 无法断点续传众所周知,但我依然希望看到大神有解决方法。

最近出现用 aria2 下载 github 上别人=预编译文件断了后,无法接着下载,是不是 github被软软买下后帮助了网网,故意搞的?

国际连接会被网网智能陡坡限速,github 再来个无法断点续传这组合实在这太坏了,大神怎么解决啊。

约 50M 的仓库因为频频断掉,我 clone 了三天没搞下来,预编译二进制包用aria2下载也一样没搞下来。

不能用翻翻

git clone 就是这样的,要么成功,要么失败。不会保留克隆道一半的仓库。

预编译包的续传,你可能忘了给 aria2 加 -c 参数。

如果有梯子就好办了,在远程主机上 clone,基本上是秒完。然后 rsync 从远程到本地。

或者看看国内有没有代码托管服务商可以做 github 镜像的。

显然不是 -c 参数问题。用aria N年了,现在续传会提示:文件已存在,重命名到一个新文件重新开始下载,而不是续传。

鉴于大神说了下,我开始怀疑我的 aria2 配置 -c 参数是否有效。

于是刚刚试了下 wget 居然可以续传,这样看我 aria2 似乎是配置文件无效? 但我一直用这个配置下载其他地方的都可以续传。

刚用手动下载加 aria2 -c 参数试验了下,不会出现重命名到新文件重新下载,但一直 0kb 卡在那,一会就 ERROR 断开了。

我也去试了一下,发现 codeload.github.com 似乎不支持断点续传:

└⋊> [~/s/build-emacs] aria2c -c -o emacs-df9b56ecff43b64f39e98ab118fe9a0f299882c4.zip https://github.com/emacs-mirror/emacs/archive/df9b56ecff43b64f39e98ab118fe9a0f299882c4.zip

05/07 17:04:03 [NOTICE] Downloading 1 item(s)
[#3286c0 0B/0B CN:1 DL:0B]
05/07 17:04:07 [NOTICE] CUID#7 - Redirecting to https://codeload.github.com/emacs-mirror/emacs/zip/df9b56ecff43b64f39e98ab118fe9a0f299882c4
[#3286c0 592KiB/41MiB(1%) CN:1 DL:0B]
05/07 17:04:10 [ERROR] CUID#8 - Download aborted. URI=https://github.com/emacs-mirror/emacs/archive/df9b56ecff43b64f39e98ab118fe9a0f299882c4.zip
Exception: [AbstractCommand.cc:351] errorCode=8 URI=https://codeload.github.com/emacs-mirror/emacs/zip/df9b56ecff43b64f39e98ab118fe9a0f299882c4
  -> [HttpResponse.cc:86] errorCode=8 Invalid range header. Request: 606208-43336152/43336153, Response: 0-43336152/43336153

注意最后出错的地方,请求的包是 606208-43336152/43336153,返回却依然从零开始 0-43336152/43336153。所以 aria2 报错了。

wget 为什么成功了,我观察了一下进度。其实是因为 wget 忽略了这个错误,从零开始下载了。

记得以前曾经 github 的 raw 文件可以外链的,后来取消了,或许是出于减轻服务器压力的考虑。不知道那一次同时也取消了 archive 文件的持断点续传,还是一直就这样。

坐等大神破解

如果是 github 有意不支持,那也没办法了。

你看看国内有没有网站可以做镜像,比如这个答案提到的:

我没用过这个服务,你试试。

把国外的平台东西搬到国内平台,这操作貌似不能干啊。国内平台那尿性删了还在的。

那么挑三拣四的就该自备好梯子