在中国快速下载Visual Studio Code

在中国,想要下载Visual Studio Code,有时真是一件不容易的事。 它本体发布于海外,国内暂无可用镜像,更新频率又高。 在某些网络环境下,下载或更新真是苦不堪言,卡着卡着就断掉了。

本文提供一个Python脚本,自动从中国的azure下载。能略快一些。

配置软件源

对Linux的deb系来说,本以为配置好了源/etc/apt/sources.list.d/vscode.list,就可以简单方便。

deb [arch=amd64 signed-by=/usr/share/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/vscode stable main

但有时卡住就是卡住,一点办法没有。

替换下载域名

如果是从官网点击下载,下载位置会略有不同。 多番重定向之后,最终链接是这种形式:

https://az764295.vo.msecnd.net/stable/5763d909d5f12fe19f215cbfdd29a91c0fa9208a/code_1.45.1-1589445302_amd64.deb

然而依然很慢。如果手动替换域名为vscode.cdn.azure.cn,则下载起来会快很多。

wget https://vscode.cdn.azure.cn/stable/5763d909d5f12fe19f215cbfdd29a91c0fa9208a/code_1.45.1-1589445302_amd64.deb

原理推测,大概是vscode.cdn.azure.cn是一个中国区服务器,其上要么有vscode镜像,要么有CDN代理。 从三级域名推测,是CDN代理;从四级域名推测,是镜像。 如果是代理,通过azure内网直通国外,速度自然快很多。

这个方案有个问题,那就是手工操作比较繁琐。 如果执行多次,非常消耗耐心。

自动发现与替换域名

据调查,当前vscode的各版本,大致如下:

为了实现自动替换,孤写了一个脚本。 原理大概是利用重定向,找到真实下载链接,然后通过替换域名,输出国内链接。 内容如下:

复制或下载之后,保存为cndlvsc.py文件,然后用Python3执行:

python3 cndlvsc.py deb

可查看帮助,下载各种版本的vscode。 也可-p打印下载链接,通过浏览器或其它方式下载。

结语

当一个中国开发者真是好难!

本来想过写一个CLI发布到PyPI中,这样只用pip install cndlvsc,就可以直接使用。 但是考虑到这就是个临时使用的小脚本,还不知道什么时候就会失效,也就算了。

今年国际形式进一步恶化,网络环境也更糟了。 如今想要和国际接轨,代价越来越大,效率越来越低。 如果强行与国际脱轨,中国的软件行业无疑会落后于时代。


相关笔记