Google硬盘离线下载计划

Google硬盘离线下载计划

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

一、选择vps服务器

二、创建服务器

三、安装google-drive-ocamlfuse

四、创建Google API

1.进入Google API管理页面

img

2.创建工程

3.创建凭据

首次申请需要填写“OAuth同意屏幕”

wKioL1lJ586C8myGAACugMedcNk532.png

wKiom1lJ58_T6fXuAADya4LrsHs456.png

wKioL1lJ58-jf4YXAAB8wlfSn_c824.png

wKiom1lJ59DBnmP0AABWZzaR6C4838.png

wKioL1lJ59DQyJIBAACxxswK0vU587.png

这个就是密钥,一会要用到。

wKioL1lJ59GhyfUaAACE5LD4ZUY283.png

4.授权

在服务器上输入google-drive-ocamlfuse -debug -headless -id 你的客户端ID -secret 你的客户端密钥。运行命令之后会出现一个url让你访问,获得验证码。如下图所示:

img

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

5.填写config

cd .gdfuse/default

vi config

img

填写你的客户端ID和密钥,在最后一行

verification_code那里写上你在浏览器里得到的验证码。

五、挂载

用df -h查看是不是挂载成功,挂载成功如下: 2.png

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

简单介绍

Aria2是一个命令行下运行、多协议、多来源下载工具,支持磁力链接、BT种子、HTTP、FTP等下载协议,当然因为它是命令行下载工具,所以我们想下载一个东西还需要去敲命令自然是不方便,于是就有一些人根据Aria2的API开发了一些在线管理面板,可以直接在网页上面添加管理任务。 本教程介绍的是 AriaNg,Github项目:https://github.com/mayswind/AriaNg Aria2是一个后端(服务端)的程序,而 AriaNg是一个前端(HTML+JS静态)控制面板,不需要和 Aria2(后端/服务端)放在一个服务器或者设备中,你甚至可以只在服务器上面搭建Aria2后端,然后访问别人建好的 AriaNg前端面板,也可以远程操作Aria2后端!

安装 Aria2(后端/服务端)

一键脚本安装

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

默认我已经配置好了 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监听端口和令牌 ,避免安全隐患!

Aria2(后端/服务端) 使用方法

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

在本地安装 AriaNg的话,只能局域网内访问,想要其他地方访问,还是要在服务器上面安装HTTP服务器。 这里安装 Caddy 一个很简单的HTTP服务器,如果你想要使用Nginx/Apache或者LNMP一键包之类的,使用方法自行谷歌。

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

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

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下载文件夹 并进入文件夹

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

下载并解压 AriaNg 文件,这段代码会自动检测并下载最新版本

Ver=$(curl -m 10 -s "https://github.com/mayswind/AriaNg/releases/latest"|sed -r 's/.*tag\/(.+)\">redirected.*/\1/')

如果上面自动检测最新版本的代码返回空白或者错误,那么请访问

https://github.com/mayswind/AriaNg/releases/latest 来查看最新版本号。

例如手动获取的版本号是 0.1.0,那么手动执行命令: Ver=”0.1.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

赋予虚拟主机文件夹权限

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

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

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即可。

service caddy restart

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

启动:service caddy start停止:service caddy stop重启:service caddy restart查看状态:service caddy statusCaddy 配置文件:/usr/local/caddy/CaddyfileCaddy 虚拟主机:/usr/local/caddy/wwwAriaNg 虚拟主机文件夹:/usr/local/caddy/www/aria2AriaNg 下载文件夹:/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因为配置文件错误等原因,启动后又退出了。 所以这种情况下,你应该去查看启动日志:

tail -f /tmp/caddy.log

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

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

netstat -lntp

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

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

service apache2 stop

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

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

取消开机自启动

update-rc.d -f apache2 remove

卸载 Apache2

apt-get remove --purge apache2

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

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 ACCEPTiptables -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 ACCEPTiptables -D INPUT -m state --state NEW -m udp -p udp --dport 端口 -j ACCEPT

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

大部分IDC都是对版权文件敏感,特别是美国的VPS,当你下载BT和磁力链接文件的时候,很有可能会被封VPS。 所以请自行选择 版权文件不敏感的 瑞典 乌克兰 俄罗斯 罗马尼亚 地区的IDC的VPS。

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

方法2:Gdrive

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

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

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

chmod +x gd

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

./gd about

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

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

./gd list

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

下载我的up.sh

wget https://github.com/fantasylidong/gdrive_dw/blob/master/up.shchmod +x up.sh

进行修改

nano up.sh

img

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

计划任务设置 crontab -e 然后选择nano作为编辑器 移动到最下面一行 参考这个博客的写法

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

总结 vps和Google无限量硬盘玩法有很多,而且国外的vps上传下载都很快,用来做种也非常不错。

全文END

评论

此博客中的热门博文

Qbittorent下载完成后自动上传谷歌网盘脚本

记一次被骗的经历

循序渐进Socket网络编程(多客户端、信息共享、文件传输)