咱们继续接着昨天的文章来完成剩下的部分,昨天写了下如何把GoogleDrive网盘挂载到VPS上面,如果你还没有将你的网盘挂载上去的话,可以先参考一下这篇文章:
有人可能觉得很奇怪,既然网盘都已经挂载到VPS上面了,那我Aria2下载资源的时候直接把下载目录指定到我们的挂载目录不就行了吗?为什么要多此一举先把资源下载到本地,然后再从本地上传到GoogleDrive?
这里容我废话两句,解释下为什么要这么做。
正所谓实践出真理,如果直接把下载目录指定到挂载目录,你会发现由于Google的API太辣鸡,会出现各种莫名其妙的错误,比如:文件无法写入、Aria2下载没速度、Aria2卡死、保存到GooglrDrive的文件不完整等等。无论你是用什么方法挂载的GoogleDrive都会是这种情况,不信可以自己试试。
这里说白了就是Google的API不能支持文件的标准输入与输出。再通俗点讲就是Google的API不能正常处理这种一边下载一边上传的需求。那既然不能同时处理下载与上传的需求,那我们就只好把下载和上传这两个行为分开来执行了。
思路很简单!Aria2有一个参数叫on-download-complete,这个参数的作用是当Aria2每下载完成一个任务后可以自动执行一次指定路径的脚本文件。那写个脚本执行一下上传这个动作不就OJBK了嘛?
果不其然我在网上正好找到一个别人已经写好的脚本:http://www.hostloc.com/thread-421797-1-1.html
OJBK,话不多说,直接动手试试看~
装依赖和组件:
yum -y install wget screen unzip gcc gcc-c++ openssl-devel
安装Aria2(CentOS6要升级GCC,7可以直接装):
cd /root wget https://github.com/aria2/aria2/releases/download/release-1.33.1/aria2-1.33.1.tar.gz tar xzvf aria2-1.33.1.tar.gz cd aria2-1.33.1 ./configure make make install
Aria2安装好后,我们在root目录下新建一个脚本文件,命名为autoupload.sh:
vi /root/autoupload.sh
写入:
#!/bin/bash path=$3 downloadpath='/root/downloads' if [ $2 -eq 0 ] then exit 0 fi while true; do filepath=$path path=${path%/*}; if [ "$path" = "$downloadpath" ] && [ $2 -eq 1 ] then rclone move "$filepath" g: exit 0 elif [ "$path" = "$downloadpath" ] then mv "$filepath"/ /lala/gdrive/"${filepath##*/}"/ exit 0 fi done
需要修改的地方如图所示:
给脚本执行权限:
chmod +x autoupload.sh
现在我们就可以启动aria2了:
aria2c --enable-rpc --rpc-listen-all --rpc-allow-origin-all --rpc-secret=lala --on-download-complete=/root/autoupload.sh -c --dir /root/downloads -D
注:
1、–rpc-secret=后面的值务必修改复杂一点,这是你的rpc连接密码!如果不设置或这个值设置的很容易被人猜到,会出现严重安全问题。
2、–on-download-complete=后面要指定执行脚本的路径,如果你的脚本路径不一样这里要做相应更改。
3、–dir后面的下载路径务必要和之前脚本内的下载路径一致。
现在来安装AriaNG。
先要安装一个Nginx:
vi /etc/yum.repos.d/nginx.repo
写入:
[nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/7/$basearch/ gpgcheck=0 enabled=1
用yum安装:
yum -y install nginx
进入到Nginx的默认站点目录:
cd /usr/share/nginx/html
下载AriaNG并解压:
wget https://github.com/mayswind/AriaNg/releases/download/0.4.0/aria-ng-0.4.0.zip unzip aria-ng-0.4.0.zip
注意有一个同名文件直接按y覆盖就行:
启动Nginx:
systemctl start nginx
现在打开你的VPS公网IP就能访问到AriaNG了。先填写rpc连接密码,让AriaNG和Aria2连接上:
连接成功后,如图所示:
现在到了一个很重要的环节了,请一定要把如图所示的“最小做种时间”修改成0:
这里稍微解释一下为什么要这么做:
并不是因为我们“毒瘤”只负责下载不负责上传,而是因为Aria2判断每个BT下载完成的条件是:“下载完成+最小分享率达到”。很多时候我们下载早就完成了,但是上传速度上不去,导致最小分享率一直达不到,这样Aria2就不会把这个任务标记为“已完成”。如果这个任务一直不完成的话,之前指定的脚本是不会执行的。所以这里是没有办法的办法,只能“毒瘤”一回了2333
OK,再让我们来安装一个filebrowser,用来管理我们的网盘文件和实现在线播放视频等需求。
下载并解压filebrowser:
cd /root wget https://github.com/filebrowser/filebrowser/releases/download/v1.7.0/linux-amd64-filebrowser.tar.gz tar -zxvf linux-amd64-filebrowser.tar.gz
写个服务,让filebrowser开机启动。
先复制可执行文件到/usr/bin:
cp /root/filebrowser /usr/bin/filebrowser
新建一个服务文件:
vi /usr/lib/systemd/system/filebrowser.service
写入:
[Unit] Description=filebrowser [Service] User=root ExecStart=/usr/bin/filebrowser --port 23333 Restart=on-abort [Install] WantedBy=multi-user.target
管理命令:
systemctl enable filebrowser systemctl start filebrowser systemctl status filebrowser systemctl restart filebrowser systemctl stop filebrowser
注:1是开机启动,2是现在运行,3是查看运行状态,4是重启,5是停止运行。
推荐用上述的服务方式来运行并管理filebrowser,如果你不想这样子运行filebrowser,也可以直接用screen来运行:
screen -dmS filebrowser ./filebrowser --port 23333
这样我们打开VPS的公网IP+端口23333就可以访问到filebrowser了。
默认的管理员账号密码都是admin,登录进去的第一件事就是把密码修改掉。接着我们要改变一下目录指定的路径:
然后我们回到AriaNG内,尝试下载一部小姐姐资源,可以看到下载完成后不会进行上传,而是直接归类到了“已完成”:
这里我们要稍等片刻,等脚本把这个文件上传到GoogleDrive内,这里的速度取决于你的VPS带宽。上传完成后,我们在filebrowser内刷新一下,可以看到之前下载的文件了:
我们登录到GoogleDrive内也可以看到文件是完整保存进去了的(资源很敏感,打了马赛克2333):
至此,一套完整的用Aria2离线下载并把文件保存到GoogleDirve的方案就大功告成了~
写在最后:
有几个注意事项这里务必提一下:
1、首先这个方案有一个先决条件就是你的VPS要带宽够大,并且可以随便跑。否则的话建议放弃。
2、VPS与Google网盘的上传速度要够快,否则我认为你不如去花点钱开个115年费会员。
3、尽量别下载正规影视资源,容易踩到蜜罐被封VPS,当然你的VPS是抗投诉的话那当我没说。
最新评论
5211314
能不能教我 一点不会