aria2 + google drive

使用Google API挂载无限量google硬盘,离线下载到google硬盘(全命令行)

  • A+
所属分类:技术文档

前言:前端时间在淘宝上买了无限量的Google硬盘,然后开始在自己电脑上挂着代理同步你懂的电影,但是100M电信硬是才700KB/S的上传速度,挂了整整三天才上传了70G左右,实在忍不了这个速度了,所以想办法能怎样离线下载到Google硬盘,下面就是我自己的解决方案,运用linux的vps来完成这个方案,国内的服务器就别用了,代理流量也是要钱的哇,实验之后发现我用Digitalocean直接下到挂载了的google硬盘下载速度能保持在3~8m/s,还不错,如果用gdrive直接上传本地硬盘文件到google硬盘更是能到25Mb/s。本教程需要一定的Linux基础.

Quote:

本文基于*google-drive-ocamlfuse*Github项目完成,目标在于安装web版aria2,并将下载目录设置成Google硬盘达到离线下载的目的~无限的Google硬盘到淘宝买,并不算贵,所以你如果按教程做好之后,就等于挂载了一个无限容量的Google硬盘,爽到。

本文基于给了root权限的vps,系统环境:Ubuntu 16.04 x64

一、选择vps服务器
Digitalocean是一款性价比不错的服务器提供商,而且流量计费不准确,基本等于无限流量,这就非常适合我们搭建离线下载网盘,而且Github学生包还有50刀的促销券,如果你有国内大学邮箱,并且在读十分有可能拿到这张优惠券,比如博主我~。
下面是链接:Digitalocean

二、创建服务器
建议选择Ubuntu 16.04,国内电信选择美国旧金山节点,移动联通选择新加坡节点,不过作为网盘建议用美国的节点,下载速度会更快一点。创建完成后连接使用就是了,DO的密码是发送到你的注册邮箱的哦。

三、安装google-drive-ocamlfuse

  1. sudo add-apt-repository ppa:alessandro-strada/ppasudo apt-get updatesudo apt-get install google-drive-ocamlfuse  

四、创建Google API

1.进入Google API管理页面使用Google API挂载无限量google硬盘,离线下载到google硬盘(全命令行)

2.创建工程

3.创建凭据

首次申请需要填写“OAuth同意屏幕”使用Google API挂载无限量google硬盘,离线下载到google硬盘(全命令行)
使用Google API挂载无限量google硬盘,离线下载到google硬盘(全命令行)
使用Google API挂载无限量google硬盘,离线下载到google硬盘(全命令行)
使用Google API挂载无限量google硬盘,离线下载到google硬盘(全命令行)
使用Google API挂载无限量google硬盘,离线下载到google硬盘(全命令行)
这个就是密钥,一会要用到。
使用Google API挂载无限量google硬盘,离线下载到google硬盘(全命令行)4.授权
在服务器上输入google-drive-ocamlfuse -debug -headless -id 你的客户端ID -secret 你的客户端密钥。运行命令之后会出现一个url让你访问,获得验证码。如下图所示:
使用Google API挂载无限量google硬盘,离线下载到google硬盘(全命令行)

从https开始到force结束,在浏览器打开获得验证码,然后输入在授权栏中

5.填写config

  1. cd.gdfuse/default
  2. [font=consolas,]viconfig  


使用Google API挂载无限量google硬盘,离线下载到google硬盘(全命令行) 填写你的客户端ID和密钥,在最后一行
verification_code那里写上你在浏览器里得到的验证码。

五、挂载

  1. mkdir ~/googledrive//创建文件夹
  2. [/font][font=microsoft][backcolor=white]google-drive-ocamlfuse~/googledrive //挂载硬盘到挂载点  

用df -h查看是不是挂载成功,挂载成功如下:
使用Google API挂载无限量google硬盘,离线下载到google硬盘(全命令行)

六、安装Aria2和web界面(一下为转载逗逼根据地的Aria2文章,这为原文链接)

简单介绍

Aria2是一个命令行下运行、多协议、多来源下载工具,支持磁力链接、BT种子、HTTP、FTP等下载协议,当然因为它是

命令行下载工具,所以我们想下载一个东西还需要去敲命令自然是不方便,于是就有一些人根据Aria2的API开发了一些在

线管理面板,可以直接在网页上面添加管理任务。

本教程介绍的是 AriaNg,Github项目:https://github.com/mayswind/AriaNg
Aria2是一个后端(服务端)的程序,而 AriaNg是一个前端(HTML+JS静态)控制面板,不需要和 Aria2(后端/服务端)放在一个服务器或者设备中,你甚至可以只在服务器上面搭建Aria2后端,然后访问别人建好的 AriaNg前端面板,也可以远程操作Aria2后端!                    使用Google API挂载无限量google硬盘,离线下载到google硬盘(全命令行)

安装 Aria2(后端/服务端)
一键脚本安装

    wget-N--no-check-certificate https://softs.fun/Bash/aria2.sh && chmod +x aria2.sh && bash aria2.sh# 如果上面这个脚本无法下载,尝试使用备用下载:                                                                     wget-N--no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/aria2.sh
    && chmod +x aria2.sh && bash aria2.sh

默认我已经配置好了 Aria2的配置文件,如果你想要修改,那么你可以输入nano /root/.aria2/aria2.conf或者 把这个文件下载到本地修改(有中文注释,# 井号是注释的,不懂的参数不要乱动,默认就好),修改完成后按住Ctrl + x保存文件。主要就是下面这两个选项:下载目录(dir)、RPC监听端口(rpc-listen-port)、RPC令牌(rpc-secret),默认是下面这样:
下载目录:dir=/usr/local/caddy/www/aria2/Download(请改为/root/google)
RPC监听端口:rpc-listen-port=6800 (默认#注释)
RPC令牌:rpc-secret=doub.io (如果不需要,则修改配置文件在参数前面加上 # 注释即可)
RPC令牌就相当于 Aria2(后端/服务端)远程API连接的授权密码,默认是开启的PRC令牌是 doub.io
正式使用建议更改 PRC监听端口和令牌 ,避免安全隐患

安装 AriaNg(前端/HTML+JS)

Github项目:https://github.com/mayswind/AriaNg
下载地址:https://github.com/mayswind/AriaNg/releases/latest
AriaNg是一个前端(HTML+JS静态)控制面板,不需要和 Aria2(后端/服务端)放在一个服务器或者设备中,你甚至可以只在服务器上面搭建Aria2后端,然后访问别人建好的 AriaNg前端面板,也可以远程操作Aria2后端!
AriaNg官方演示页面:http://ariang.mayswind.net/
本地安装(可选步骤,不打算本地安装 AriaNg就跳过)

AriaNg是一个 HTML+JS 纯静态一个Aria2的Web面板,所以不需要编译任何环境。
AriaNg的前端面板可以放在你本地电脑上面,下载解压后后直接用浏览器打开 index.html 文件就能使用了。

服务器安装

在本地安装 AriaNg的话,只能局域网内访问,想要其他地方访问,还是要在服务器上面安装HTTP服务器。

这里安装 Caddy 一个很简单的HTTP服务器,如果你想要使用Nginx/Apache或者LNMP一键包之类的,使用方法自行谷歌。

  1. wget -N --no-check-certificate [url]https://softs.fun/Bash/caddy_install.sh[/url] && chmod +x caddy_install.sh && bash caddy_install.sh install ht@Gue^33D-9#[email]2nv@tp.file[/email]manager

# 如果上面这个脚本无法下载,尝试使用备用下载:

  1. wget -N --no-check-certificate [url]https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/caddy_install.sh[/url] && chmod +x caddy_install.sh && bash caddy_install.sh

安装Caddy成功后,继续新建一个虚拟主机文件夹,

  1. mkdir /usr/local/caddy/www && mkdir /usr/local/caddy/www/aria2

写入配置到 Caddy 配置文件,注意下面这五行要一起复制粘贴,不是一行一行复制!

echo ":80 {

root /usr/local/caddy/www/aria2

timeouts none

gzip

browse

}" > /usr/local/caddy/Caddyfile

安装 AriaNg

# 新建Aria2下载文件夹 并进入文件夹 #

  1. mkdir /usr/local/caddy/www/aria2/Download && cd /usr/local/caddy/www/aria2

Ver="0.2.0"
wget -N --no-check-certificate "https://github.com/mayswind/AriaNg/releases/download/${Ver}/aria-ng-${Ver}.zip" && unzip aria-ng-${Ver}.zip && rm -rf aria-ng-${Ver}.zip

# 赋予虚拟主机文件夹权限 #

  1. chmod -R 755 /usr/local/caddy/www/aria2

上面代码都执行完后,就可以启动 Caddy了。

  1. service caddy start

如果Caddy 运行正常,那么你打开 http://vps_ip 即可看到 AriaNg的页面了。

绑定域名

现在,AiraNg已经可以通过IP访问了,但是只通过IP访问,不好记,如果你想要用域名的话,这样改:

# 重新写入配置到 Caddy 配置文件,注意下面这五行要一起复制粘贴!toyoo.ml 改成你自己的域名,然后去域名托管商解析你的域名即可 #

echo "http://toyoo.ml {

root /usr/local/caddy/www/aria2

timeouts none

gzip

browse

}" > /usr/local/caddy/Caddyfile

上面代码执行完毕后,重启Caddy即可。

  1.  service caddy restart 

启动成功后,尝试访问 http://域名 ,看一看是否成功。
Caddy 使用方法

启动:service caddy start
停止:service caddy stop
重启:service caddy restart
查看状态:service caddy status
Caddy 配置文件:/usr/local/caddy/Caddyfile
Caddy 虚拟主机:/usr/local/caddy/www
AriaNg 虚拟主机文件夹:/usr/local/caddy/www/aria2
AriaNg 下载文件夹:/usr/local/caddy/www/aria2/Download

配置 AriaNg

进入AriaNg的网页后,默认是英文语言,你可以 点击左侧选项菜单 —— AriaNg Setting ,然后在新页面中 Language选项选择 简体中文,然后刷新页面后即可生效。
如果你的 Aria2(后端/服务端)还没有运行,请先根据 Aria2使用说明 启动 Aria2(后端/服务端)。
依然是 左侧选项菜单 ——  AriaNg 设置 —— RPC —— 依次输入/选择下图各选项。
Aria2 RPC 主机:就是填写你 安装Aria2(后端/服务端)的服务器IP 或者 域名。
Aria2 RPC 端口:默认 6800 。
Aria2 RPC 协议:选择 http ,如果你配置了https,那么就选择https。
Aria2 RPC 密匙:输入你的RPC密匙(令牌),如果你安装后没有修改配置文件中的RPC密匙(令牌),那么你这里需要填写 doub.io 。
强烈建议打开 RPC密匙(令牌)来保证安全性。
设置完毕后,刷新页面即可生效。
正常情况下,右上角会提示 连接成功,点击左侧选项菜单 —— Aria2 状态,即可看到当前 AriaNg 前端面板连接到的 Aria2(后端/服务端)的信息。

在线下载/观看

我发现这个 AriaNg前端面板,下载文件后不会显示 HTTP文件下载链接,这个很蛋疼,这是我感觉这个前端面板 唯一一点不完美的地方。
可以手动拼接来 获得HTTP下载链接,例如我下载了一个名为 100MB.bin 的文件
那么我只要这样拼接 http://toyoo.ml/Download/100MB.bin 即可下载文件了,mp4格式的视频也可以这样在线观看。
我已经在Github上面反馈这个问题了,作者听了很感动,然后把我禁言了…
好吧,为了满足你们的需求,我就另想了一个办法,比手动拼接要方便一些。
上面安装 Caddy的时候,就已经配置了目录列表功能,所以可以通过 http://ip/Download 来访问以显示 Download 文件夹里面的所有文件了!

实现网盘式操作[可选,对于我们的操作没什么用]

Caddy自带的目录列表功能很简陋,不能 新建/重命名/移动/删除 文件/文件夹等操作,所以可以使用 Caddy的 FileManager 扩展。
参考使用方法看这里。
注意:2017/03/23 17:50 之前通过本教程安装的Caddy,皆没有这个扩展,需要卸载重装!
注意事项

AriaNg前端面板并不会保存任何设置,所有设置都是 从 Aria2(后端/服务端)的启动参数或者配置文件中获取的。
启动显示成功,但是实际未运行

因为 服务脚本判断的问题,只判断了nohub是否运行 Caddy成功,但没有判断 Caddy 是否保持正常运行。
你可以理解为,nohub成功启动了 Caddy,但是 Caddy因为配置文件错误等原因,启动后又退出了。
所以这种情况下,你应该去查看启动日志:

  1. tail -f /tmp/caddy.log  

Caddy启动失败,打开 http://ip 显示的是 It works !

一些系统会自带 apache2 ,而 apache2 会占用80端口,导致Caddy无法绑定端口,所以只要关掉就好了。

  1. netstat -lntp  

# 我们可以通过这个命令查看是不是被其他软件占用了 80 端口。

不过 apache2 会默认开机自启动,如果不需要可以关闭自启动或者卸载 apache2 。
停止 Apache2

  1. service apache2 stop  

# 尝试使用上面这个关闭,如果没效果或者提示什么错误无法关闭,那就用下面这个强行关闭进程。

  1. kill -9 $(ps -ef|grep "apache2"|grep -v "grep"|awk '{print $2}')  

取消开机自启动

  1. update-rc.d -f apache2 remove  

卸载 Apache2

  1. apt-get remove --purge apache2  

关闭 Apache2后,就可以尝试启动 Caddy ,并试试能不能打开网页。

  1. service caddy start  

Aria2(后端/服务端)启动成功,但是 AriaNg 无法连接

这个可能是防火墙的问题,开放防火墙端口即可。
需要开放两个端口,一个是RPC监听端口 6800(默认),一个是BT监听端口 51413(默认)。
不清楚端口的话,可以打开配置文件去看 vi /root/.aria2/aria2.conf ,或者查看本地端口监听情况 netstat -lntp 。

iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 端口 -j ACCEPT

iptables -I INPUT -m state --state NEW -m udp -p udp --dport 端口 -j ACCEPT

# 删除防火墙规则,内容一样把 -I 换成 -D 就行了:

iptables -D INPUT -m state --state NEW -m tcp -p tcp --dport 端口 -j ACCEPT

iptables -D INPUT -m state --state NEW -m udp -p udp --dport 端口 -j ACCEPT

关于版权问题,大部分地区是禁止下载BT和盗版文件的

PS:小黄小电影基本没有版权商的蜜罐,所以可以正常玩耍,但是你不要用这个下载比较新的盗版BT电影,至少电影要是5年以上老片才能下,否则被封vps我概不负责
大部分IDC都是对版权文件敏感,特别是美国的VPS,当你下载BT和磁力链接文件的时候,很有可能会被封VPS。
所以请自行选择 版权文件不敏感的 瑞典 乌克兰 俄罗斯 罗马尼亚 地区的IDC的VPS。

另一个同样也是很简洁的 Aria2管理面板:https://github.com/NemoAlex/glutton(如果你们需要我可以把这个的安装步骤加上)PS:这种方法会比直接下载到硬盘再上传会慢,但是不需要消耗硬盘空间,可以做无限下载
服务器,再也不用担心下载容量不足,如果你觉的这个方法上传比较慢,这里还有个方法,
不过会占用vps硬盘空间,但是上传速度非常快,我会把我的脚本贴下来,并且告诉你们怎么用

方法2:Gdrive
   此处参考github项目gdrive的wiki
第一步,下载对应架构的gdrive包,如果你是和我一样的系统,命令如下

  1. wget -O gd "https://docs.google.com/uc?id=0B3X9GlR6EmbnQ0FtZmJJUXEyRTA&export=download"  

然后赋予我们刚才下载的文件可执行的权限

  1. chmod +x gd  

现在我们就可以开始登陆我们的Google账号了

  1. ./gd about  

运行完命令之后出来一串网页url,复制打开(要F墙)
然后复制到终端上,大功告成,他会显示token access success,就可以了。

然后在Google云盘上新建一个空的文件夹来做同步文件夹
然后在我们下载gd的目录那里输入

  1. ./gd list  

找到你刚才创建的文件夹id,复制

下载我的up.sh
wget https://github.com/fantasylidong/gdrive_dw/blob/master/up.sh
chmod +x up.sh
进行修改
nano up.sh

id修改为你的文件夹id

现在你可以做计划任务,也可以不做,不做的话就要自己手动操作,做的话就能实现自动同步功能,但是有一点不好,如果你做了计划任务,如果有文件在下载,他就会把没下载完也传上去,由于gdrive不支持断点续传,所以就会很麻烦。建不建立你自己选择。

计划任务设置
crontab -e
然后选择nano作为编辑器
移动到最下面一行
自己找一下crontab写法,例子在下面

例如:0 8 * * * root ./root/up.sh的意思就是在8点钟运行root目录下的up.sh脚本
你根据你自己的需求来写

总结
vps和Google无限量硬盘玩法有很多,而且国外的vps上传下载都很快,用来下载做种也非常不错。搭配kodi+gdirve插件直接播放Google硬盘上的视频基本能获得最好的安卓观影体验,而且Google网盘下载不限速,只要你有一个好的代理,那速度杠杠的,基本秒载入。

经过我3天多的使用,同一时间下到Google硬盘的任务数最好不要超过3个,超过三个就很容易出错。这个系统最好在1G内存的VPS上使用,512m内存的机器虽然也能使用,但是开启任务的时候会有一点卡顿,而且挂载Google硬盘吃I/O,吃内存,很容易崩,建议使用1g内存的服务器。(搬瓦工OPENVZ架构小于512M内存就不要试了)

很多人看完文章可能还没有完全明白我写的这篇文章的应用在什么地方。

  1、离线下载,免去天天拿电脑挂机的哭,而且,离线是直接离线到Google网盘,以后你可以直接在Google网盘中观看,不用担心你删除视频之后,原视频没人做种,下载速度根本没有的尴尬,而且Google网盘下载根本不限速,只要你的代理速度还可以,我现在用的代理20块钱,无限流量基本能够跑满我的电信100M宽带。

   2、在线观看,不用再占用自己硬盘了[PS:楼主硬盘经常是个红盘]

   3、搭配kodi应用和gdrive for kodi看谷歌视频基本能获得安卓上最好的观影效果,秒载入,秒拉动。

  4、手机电脑都可以下载,只要进入你的下载页面~    大概就是这么多了。

全文END