Google Drive实现离线下载功能

由于Google Drive在国内使用不是太方便,我主力使用的同步网盘还是OneDrive,但是不可以否认Google Drive是一款优秀的网盘,比较我也是一个Google的脑残粉。前几日在Telegram中看见一篇让Google Drive实现离线下载的文章,感觉只是个很给力的功能。

google-drive

一、版权申明

本文章非原创教程,收发应该是1月14日在Telegram群里,是某色站站长写的教程,主要是为了离线小片片吧。至于色站地址,我就不写出来,下面教程中,某图片里有该网站的网址。喜欢的朋友可以去观光一下。( >﹏<。)~呜呜呜……

二、实现原理

在2016年的时候Google Drive发布了一个Linux版本的Drive,因此可以通过Drive提供的API来对Google Drive进行数据访问,因而可以对Google Drive开发出各种各样的玩法。让Google Drive实现离线下载,主要是通过使用了Linux下Aria2下载工具,通过将文件下载到VPS,在通过google-drive-ocamlfuse将数据同步至Google Drive。

以上P话都是原创,接下来的部分大多都是参考与转载,在此强调,作者的网站网址可以在下面某图中看见。

三、需要环境及教程分块

本教程主要在CentOS7下完成,需要VPS内存不小于512MB,硬盘不少于10G。

  1. centos 7安装google-drive-ocamlfuse
  2. centos 7安装aria2
  3. 配置google-drive-ocamlfuse和aria2

四、CentOS7安装google-drive-ocamlfuse

1.安装必要环境

yum install -y git
yum install -y hg
yum install sqlite-devel fuse fuse-devel libcurl-devel zlib-devel m4

2.安装opam

yum install ocaml ocamldoc ocaml-camlp4-devel
wget https://raw.github.com/ocaml/opam/master/shell/opam_installer.sh -O – | sh -s /usr/local/bin/
yum install

3.安装google-drive-ocamlfuse

opam init
opam update
opam install depext
opam depext google-drive-ocamlfuse
opam install google-drive-ocamlfuse

测试是否安装成功:google-drive-ocamlfuse -help,如果出现帮助内容,说明安装成功。如果提示命令不存在,可以重启一下,再试试命令。

五、CentOS7安装Aria2

使用Aria2一键安装脚本,仅需输入账号密码进行配置即可。

yum install git
git clone https://github.com/tangrela/aria2
cd aria2
chmod u+x *.sh && ./install_aria2.sh

六、配置google-drive-ocamlfuse和aria2

1、配置google-drive-ocamlfuse

配置google-drive-ocamlfuse需要获取google drive的api。

1.获取Google Drive的API,地址:

https://code.google.com/apis/console/

2.点击创建项目

google-drive-create-project

3.建好项目,选择启用API和服务,搜索Google Drive。

active-google-drive-api

4.确定启用Google Drive的API。

active-google-drive-api1

5.创建凭据。

chuangjianpingju
chuangjianpingju1
chuangjianpingju2
chuangjianpingju3

6.记录下获取到的客户端ID和密钥。

google-drive-key

7.回到Putty,返回命令行,将client-ID和client-secret替换为你刚获取的客户端ID和密钥。

google-drive-ocamlfuse -headless -label me -id client-ID -secret client-secret

8.之后会出现一行链接,复制、粘贴到浏览器,打开,选择你的账号,允许之后将获取到的验证码复制到命令行即可。

google-drive-linode-link

9.Google Drive挂载本地目录,先创建一个空目录,然后挂载。

mkdir /data/aria2/gg
google-drive-ocamlfuse -label me /data/aria2/gg

至此,google-drive-ocamlfuse配置完毕。

2、配置Aria2

1.前面已经通过一键包安装了aria2,这里只需要修改下配置就行。修改配置

cd /data/aria2

echo “bt-tracker=udp://tracker.leechers-paradise.org:6969/announce,udp://tracker.coppersurfer.tk:6969/announce,udp://9.rarbg.to:2710/announce,udp://p4p.arenabg.com:1337/announce,http://p4p.arenabg.com:1337/announce,udp://tracker.internetwarriors.net:1337/announce,http://tracker.internetwarriors.net:1337/announce,udp://tracker.skyts.net:6969/announce,udp://tracker.safe.moe:6969/announce,udp://tracker.piratepublic.com:1337/announce,udp://tracker.opentrackr.org:1337/announce,http://tracker.opentrackr.org:1337/announce,udp://wambo.club:1337/announce,udp://trackerxyz.tk:1337/announce,udp://tracker4.itzmx.com:2710/announce,udp://tracker2.christianbro.pw:6969/announce,udp://tracker1.wasabii.com.tw:6969/announce,udp://tracker.zer0day.to:1337/announce,udp://public.popcorn-tracker.org:6969/announce,udp://peerfect.org:6969/announce” >> aria2.conf

echo “on-download-complete=/data/aria2/mvcompleted.sh” >> aria2.conf

2.添加脚本,当aria2下载完毕之后,自动将下载的文件移至挂载google drive的目录,并自动上传。

wget https://gist.githubusercontent.com/tangrela/6df921e34a7ab0fe4e4878a63fba9b03/raw/a65e700d7d01f66ab823993bfde5d076da982968/mvcompleted.sh && chmod +x mvcompleted.sh

3.最后启动Aria2。

/data/aria2/aria2.sh start

4.附上Aria2的相关命令

#启动

/data/aria2/aria2.sh start

#停止

/data/aria2/aria2.sh stop

#重启

/data/aria2/aria2.sh restart

#卸载

cd aria2-master &&./uninstall.sh

#Caddy server配置文件

/data/aria2/caddy.conf

#Aria2配置文件

/data/aria2/aria2.conf

#离线下载目录

/data/aria2/download

#日志目录

/data/aria2/aria2.log

/data/aria2/caddy.log

5.然后访问http://ip:6800打开aria2 web管理界面。(注意防火墙开启6800端口)。修改RPC地址:http://user:passwd@ip:6800/jsonrpc,user、passwd就是前面安装aria2时提示输入的用户名、密码,ip就是你的服务器ip。

rpc-setting

七、效果图

google-drive-office
google-drive-office1

看到效果图,就已经明白了站长的心意,真是用心良苦~

6 thoughts on “Google Drive实现离线下载功能

  1. Google Chrome 55.0.2883.87 Google Chrome 55.0.2883.87 Windows 7 x64 Edition Windows 7 x64 Edition

    是不是被封了?

    • xzymoe
      Firefox 57.0 Firefox 57.0 Windows 10 x64 Edition Windows 10 x64 Edition

      应该没有被封吧,毕竟是合理使用官方的API的。另外我看了下google-drive-ocamlfuse是16年就有的项目了,原博主14号都还是可以使用,应该是没有被封。

  2. Jacobchow
    Google Chrome 64.0.3282.186 Google Chrome 64.0.3282.186 Mac OS X  10.12.6 Mac OS X 10.12.6

    这里有个问题,比如你都VPS硬盘空间是10G,可用5G;
    aria2c下载的时候,默认会使用file-allocation缓存到你到VPS硬盘里,假设文件大于10G,缓存不够就下载不下来
    如果在配置文件里设置 file-allocation=none;下载就会报错。我的是这样
    如何解决呢

    • xzymoe
      Firefox 57.0 Firefox 57.0 Ubuntu x64 Ubuntu x64

      虽然将drive挂载到了vps上,但是他不是直接下载到挂在点上的啊。。他是先下载到本地完成之后才移动至drive里啊,vps空间只有5g下载不了10g的啊 他并不是直接下载到drive里啊 有点伪离线下载的感觉

      • Jacobchow
        Google Chrome 64.0.3282.186 Google Chrome 64.0.3282.186 Mac OS X  10.12.6 Mac OS X 10.12.6

        也是
        不过我看这个mvcomplete.sh是否可以改成直接在aria2.conf里设置dir=挂载点 就行了?

        • xzymoe
          Firefox 57.0 Firefox 57.0 Ubuntu x64 Ubuntu x64

          我昨天看了一下。我也不太清楚gdrive是如何挂载的,很可能有api的限制,你可以申请个transip通过webdav来挂载 这种在修改aria2.conf就可以直接离线到硬盘里了

发表评论