用jsdelivr CDN下载Github仓库

2018-11-29 20:41

高考因为淋巴结核推到2020年了呢......

思路历程(废话可跳过)

意外的一次看到jsdelivr CDN有Github的仓库缓存
jsdelivr
作为jsdelivr的忠实用户,很清楚jsdelivr的速度有多快。
那么是不是从此就可以摆脱github仓库clone的惨淡速度了呢? 于是我尝试直接用jsdelivr的镜像clone仓库... git-fail
失败了,看来只能下载每个仓库里的单个文件。
那如何才能用jsdelivr CDN下载一个Github仓库里的所有文件(不包括.git文件夹)呢?
Python 启动!!

jsdelivr-clone

脚本用到了Github API,没有认证每小时每个ip只能调用60次,远远不够脚本调用。
用代理IP的话效率太低,速度还不如直接用Git去clone github。
所以需要用到OAuth Apps。

创建OAuth Application

打开网址 https://github.com/settings/developers随便填。
oauth
然后拿到Client ID和Client Secret

下载安装

  • 下载源码:
git clone git@github.com:Ghosin/jsdelivr_clone.git

或者直接到https://github.com/Ghosin/jsdelivr_clone下载zip文件

  • 安装依赖:
pip install -r requirements.txt
  • 将Client ID和Client Secret填入config.py:
client_id = 'client_id'
client_secret = 'client_secret'

用法

python jc.py github_repo download_dir

注意:github_repo不带.git

效果

effect
比直接git clone快到不知哪里去了(没挂vpn的情况下)。
虽然没有.git文件夹,不能回滚查看开发历史。
但如果想要直接下载源码浏览或者使用是足够了。

Gitalking ...

Markdown is supported

Be the first guy leaving a comment!