linux上使用drive从google drive 下载文件和文件夹
由于之前要下载Darpa的大型数据集,这个数据集仅仅在google drive上可以获取。但是如果手动下载的话,要么一个个文件自己点击要么就是整个打包。
这样子有几个问题:
- 速度很慢
- 中间不能关闭浏览器
- 由于文件很大,经常压缩着就失败了,白等半天
所以我直接在服务器上下载文件,可以直接挂在tmux上。
搜集了一顿资料,发现比较好用的就是,gdrive和drive。
可以选择跟着教程走,走编译的路线,但是由于我在服务器上进行,很多配置不能改,所以就选择最简单也最直接的办法。
第一步:下载可执行文件
gdrive:
https://github.com/prasmussen/gdrive/releases
drive:
https://github.com/odeke-em/drive/releases/tag/v0.4.0
找到符和自己电脑的版本,进行下载。
例如我是下载的drive_linux.
可以手动下载然后转移到服务器上,或者复制链接,然后用wget下载。都可以,怎么方便怎么来。
输验证码
将文件解压之后,需要给文件提个权。
chmod +x drive_linux #提权
mv drive_linux drive #重命名
然后运行 ./drive init
会出现如下的画面
直接点击连接,然后获取验证码输进去就行了。
下载文件
当完成验证之后,就可以直接用如下命令下载文件:
./drive pull -id <file or folder id>
文件或者文件夹的id可以右键点击,然后点获取链接,中间一堆乱码一样的东西就是id了。
如图所示:
更新
上面的这种方式已经不能用了,github也已经很多年没有人维护了。但我最近又有需求从google drive上下来内容,几番查找之后,发现可以使用rclone的方式去获取。
为了避免侵权,另一方面也是我懒得写细致的博客了,具体的过程可以参考这位博主的,唯一不一样的就是最后我是需要将share_with_me里面的内容copy过来,而不是文件夹全部同步,所以我最后我使用的命令是:
“rclone copy "your_name_of_rclone:Path_of_file" "./" --drive-shared-with-me”
例如我使用的就是
rclone copy "gdrive:/Engagement5/Ground_Truth" "./" --drive-shared-with-me
以及小心一次性最多copy一个小时,因为token有效期就只有那么长,超级大型的文件建议还是差分开来再进行拷贝。
再次更新
rclone可以比较方便的下载大型文件,但是咋说呢,还是太麻烦了。后来发现gdown也不错,不过gdown下载大型文件以及多人访问文件会有一些小问题。可以参考这位博主的解答:
https://blog.csdn.net/qq_43659183/article/details/133697542