静看光阴荏苒
不管不顾不问不说也不念

Aria2离线下载后自动将文件上传到GoogleDrive

咱们继续接着昨天的文章来完成剩下的部分,昨天写了下如何把GoogleDrive网盘挂载到VPS上面,如果你还没有将你的网盘挂载上去的话,可以先参考一下这篇文章:

挂载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是抗投诉的话那当我没说。

未经允许不得转载:荒岛 » Aria2离线下载后自动将文件上传到GoogleDrive
分享到: 更多 (0)

评论 14

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    沙发 :smile:

    leon1个月前 (03-15) Google Chrome 64.0.3282.186 Google Chrome 64.0.3282.186 Mac OS X  10.13.3 Mac OS X 10.13.3回复
  2. #2

    dalao,aria2如何设置开机自启?

    kenshin4周前 (03-31) Google Chrome 65.0.3325.109 Google Chrome 65.0.3325.109 Android 4.4.4 Android 4.4.4回复
    • 参考:https://lala.im/2455.html

      LALA3周前 (03-31) TheWorld Browser TheWorld Browser Windows 7 x64 Edition Windows 7 x64 Edition回复
  3. #3

    Debian7不能自动移动,怎么解决?

    kenshin2周前 (04-08) Google Chrome 65.0.3325.109 Google Chrome 65.0.3325.109 Android 4.4.4 Android 4.4.4回复
  4. #4

    启动Nginx命令systemctl start nginx时,提示Job for nginx.service failed because the control process exited with error code. See “systemctl status nginx.service” and “journalctl -xe” for details.

    snoopy2周前 (04-09) Google Chrome 65.0.3325.181 Google Chrome 65.0.3325.181 Windows 10 x64 Edition Windows 10 x64 Edition回复
    • 你改过nginx的配置文件,并且改错了,导致nginx无法启动。

      LALA2周前 (04-09) TheWorld Browser TheWorld Browser Windows 7 x64 Edition Windows 7 x64 Edition回复
  5. #5

    请问是一定要先在本地下载完才能上传到gd吗,如果是这样那为什么要上传到gd呢?

    daivd2周前 (04-09) Google Chrome 65.0.3325.181 Google Chrome 65.0.3325.181 Windows 10 x64 Edition Windows 10 x64 Edition回复
    • 你本地的硬盘有gd大吗。。。gd无限容量的。。。

      LALA2周前 (04-09) TheWorld Browser TheWorld Browser Windows 7 x64 Edition Windows 7 x64 Edition回复
      • 可惜我在tb上买的账号已经被封了

        daivd1周前 (04-15) Google Chrome 65.0.3325.181 Google Chrome 65.0.3325.181 Windows 10 x64 Edition Windows 10 x64 Edition回复
  6. #6

    博主有没有用Transmission下载再自动上传的办法呢,因为我平常PT下载用得多

    snoopy1周前 (04-16) Google Chrome 65.0.3325.181 Google Chrome 65.0.3325.181 Windows 10 x64 Edition Windows 10 x64 Edition回复
    • 把这个脚本写个crontab,比如每隔1天执行一次就可以满足你说的自动上传需求了。

      LALA1周前 (04-16) TheWorld Browser TheWorld Browser Windows 7 x64 Edition Windows 7 x64 Edition回复
      • 小白一枚呀,只会一行一行打命令,能详细说下吗谢谢

        snoopy6天前 Google Chrome 65.0.3325.181 Google Chrome 65.0.3325.181 Windows 10 x64 Edition Windows 10 x64 Edition回复
  7. #7

    一直在网盘里没有文件转移过来

    v1周前 (04-16) Google Chrome 63.0.3239.132 Google Chrome 63.0.3239.132 Windows 10 x64 Edition Windows 10 x64 Edition回复
  8. #8

    通过filebrowser复制可以到gd,但是移动就不行了,显示网络错误,下载完成不能自动转移

    v1周前 (04-16) Google Chrome 63.0.3239.132 Google Chrome 63.0.3239.132 Windows 10 x64 Edition Windows 10 x64 Edition回复

分享创造快乐

广告合作资源投稿