Linux系统用命令行下载Google Drive文件的方法
当我们需要通过Google Drive分享的文件下载数据集等资源时,往往用浏览器自带的下载器是不可行的,以Safari浏览器为例。
可以看见会出现“网络连接已中断”的情况,并且我们当我们再次下载任务时,任务会重新开始,所以我们要找其他方法来下载。
一种可行的方法是通过Chrome浏览器的IDM插件来下载,但是需要收费。
本文给出的方案是通过命令行的方式下载。
在Linux系统中,通过下面的指令下载gdown工具
pip install gdown
然后在命令行中输入以下指令即可下载Google Drive的资源
#gdown + https://drive.google.com/uc?id= +需要下载的FileID
#下面举一个例子
gdown https://drive.google.com/uc?id=1H73TfV5gQ9ot7slSed_l-lim9X7pMRiU
#本例中FileID=1H73TfV5gQ9ot7slSed_l-lim9X7pMRiU
FileID获取方法:
点击获取链接,再点击复制链接,如图上所示,会有如下链接
https://drive.google.com/file/d/1ftesnmlh7NU3m5MuXGQ6OCJkylTsBOjU/view?usp=share_link
我们取其中的1ftesnmlh7NU3m5MuXGQ6OCJkylTsBOjU
部分作为我们的FileID即可。
另外,可以通过添加-c
指令来继续上次中断下载,可以避免我们再碰上网络连接中断的麻烦,例如我们要(继续)下载FileID为1ftesnmlh7NU3m5MuXGQ6OCJkylTsBOjU
的文件,只需要下面的命令即可
gdown -c https://drive.google.com/uc?id=1ftesnmlh7NU3m5MuXGQ6OCJkylTsBOjU
最终效果如下图所示
可以看到,我们虽然在36%时中断,但是我们第二次执行命令时,下载的文件变小了,也就是说程序再下载时,会从上次中断的地方开始下载。^ _ ^
如果多次中断再进行下载的话会报错:Too many users have viewed or downloaded this file recently. Please try accessing the file again later. If the file you are trying to access is particularly large or is shared with many people, it may take up to 24 hours to be able to view or download the file. If you still can't access a file after 24 hours, contact your domain administrator.
字样,我们可以通过curl的方式来继续下载我们的任务,参考链接。
另外还有一种玄学的方法,如果我们下载的文件小于15G的话,我们可以把别人分享的文件复制到我们的云空间下,我们直接下载我们刚才复制的文件的副本,过程跟之前介绍的一样,获取链接进行下载,本人用这种方法后通过命令行gdown下载再没中断过,并且速度能得到非常大的提升,20KB飞升到1MB不是梦!!!