njzjz / gdriveupload

Transfer files from China
4 stars 1 forks source link

gdriveupload

众所周知,由于种种原因,从国内传文件到国外是非常痛苦的。笔者尝试了种种办法后,均告失败。后来,笔者无意中发现了maple3142的GDIndex项目,发现可以通过Cloudflare直接传输到Google Drive上。

美中不足的是,Cloudflare限制上传100MB以内的文件。不过,我们可以用分拆文件的方法绕过限制。于是,这个项目诞生了。

前期准备

配置GDIndex。在GDIndex的目录下创建tmp目录(此为默认的临时目录)。

在国内机器上传文件

安装gdriveupload:

pip install git+https://github.com/njzjz/gdriveupload

~/.bashrc中配置GDRIVEUPLOAD_WEBSITEGDRIVEUPLOAD_USERNAMEGDRIVEUPLOAD_PASSWORD三个环境变量,分别为GDIndex网站地址、用户名和密码。

现在,此处有一个1009MB的20180628qm9nn.tgz,想把它传到Google Drive中的Undergraduate_Work/Deep_Learning/Dataset/20180628qm9nn.tgz中去。

gdriveupload upload -f 20180628qm9nn.tgz -t Undergraduate_Work/Deep_Learning/Dataset/20180628qm9nn.tgz

现在,20180628qm9nn.tgz已经分为11个子文件上传到了tmp文件夹中。在上海教育网环境下,共耗时3分钟,即5.5MB/s,速度尚可接受。

合并文件

这里推荐使用Google Colab合并文件,装载Google Drive后,在代码框输入:

!pip install git+https://github.com/njzjz/gdriveupload
!GDRIVEUPLOAD_ROOT=/content/drive/My\ Drive gdriveupload combine

大约耗时2分钟。现在,20180628qm9nn.tgz已经在Google Drive的Undergraduate_Work/Deep_Learning/Dataset/目录下了。