Github 高速下载的一种可行方法。


注:jsDelivr 新增使用政策已经于 8 月 15 日生效,根据最新的政策本文某些操作已经属于违规了,请谨慎使用!

禁止以下行为:

  1. 托管或访问以下内容:
    • 包含任何形式的恶意软件或有害代码,
    • 侵犯他人的所有权,
    • 在欧盟或美国可能是非法的。
  2. 滥用服务及其资源,或将 jsDelivr 用作通用文件或媒体托管服务。例如,这包括:
    • 运行图像托管网站,并使用 jsDelivr 作为所有上传图像的存储空间,
    • 托管视频,文件备份或大量其他文件。

简介

众所周知,Github 在国内时长抽风,并且速度奇慢,一个很小的exe文件都需要下载几十分钟。但是一个网站可以解决这个问题,那就是 jsdelivr

关于 jsdelivr 的介绍可以参考 很好用的免费公用 CDN 资源 JSDelivr - Segmengfault

总的来说 jsdelivr 有如下的优势:

  • 中国大陆唯一有 license 的公有 CDN[1]
jsdelivr CDN 测速
  • 与 Github、NPM 整合

通过 jsdelivr 可以直接获取 Github 上的数据(这也是 Github 快速下载的基础)

使用

使用 jsdelivr 来下载 Github 的方法有几种,这里主要介绍一种:

  1. 直接访问code处的文件

访问code处的文件十分简单,只要记住如下的公式即可

https://cdn.jsdelivr.net/gh/owner/repo@branch/fileName

其中 owner 是 GitHub 用户名,repo 是仓库名,branch 是分支【默认为 master 】,fileName 是需要下载的文件名

链接的合成可以采用下面这个python程序👇,也可以自己手动拼接!

import os

link = input("请输入需要下载的文件地址(直接拼接仓库地址以及文件名即可):如https://github.com/qyxtim/bitcron-pro/README.md: \n")
index = link.find("/")
reindex = []

while (index != -1):
    reindex.append(index)
    index = link.find('/', index + 1)

if len(reindex) < 5:
    print("输入链接不合法")
    print("建议参考https://blog.blinkstar.cn/post/grd/")
    os.system("pause")
    exit(0)

owner = link[reindex[2]+1:reindex[3]]
repo = link[reindex[3]+1:reindex[4]]
fileName = link[reindex[4]+1:]

print(owner, repo, fileName)

downloadLink = 'https://cdn.jsdelivr.net/gh/' + owner + '/' + repo + '@master/' + fileName
print(downloadLink)
  1. 获取 Github 的 Release

jsdelivr 唯一美中不足的就是它不能获取exe文件以及 Release 处附加的exe和dmg文件。也就是说如果exe文件是附加在 Release 处但是没有在 code 里面的话是无法获取的。但是有了能快速获取 code 处的功能也会有很大的帮助(比如快速下载在 Github 上的电子书、表格等)。但是需要注意电子书的大小不要超过 50MB!

下面附上两个 Github 上的电子书资源:

Classic books of computer science
计算机书籍

总的来说,使用 jsdelivr 来加速 Github 的下载限制颇多,但在实在难以下载的时候也算是一种临时的解决方案!


  1. 很好用的免费公用 CDN 资源 JSDelivr - Segmengfault ↩︎