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

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

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

评论 34

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

    沙发 :smile:

    leon4个月前 (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

      LALA4个月前 (03-31) TheWorld Browser TheWorld Browser Windows 7 x64 Edition Windows 7 x64 Edition回复
  3. #3

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

    kenshin3个月前 (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.

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

      LALA3个月前 (04-09) TheWorld Browser TheWorld Browser Windows 7 x64 Edition Windows 7 x64 Edition回复
  5. #5

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

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

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

        daivd3个月前 (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下载用得多

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

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

        snoopy3个月前 (04-19) Google Chrome 65.0.3325.181 Google Chrome 65.0.3325.181 Windows 10 x64 Edition Windows 10 x64 Edition回复
  7. #7

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

    v3个月前 (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,但是移动就不行了,显示网络错误,下载完成不能自动转移

    v3个月前 (04-16) Google Chrome 63.0.3239.132 Google Chrome 63.0.3239.132 Windows 10 x64 Edition Windows 10 x64 Edition回复
  9. #9

    dalao aria2 bt下载无速度 :cry:

    luk2个月前 (05-19) Microsoft Edge 16.16299 Microsoft Edge 16.16299 Windows 10 x64 Edition Windows 10 x64 Edition回复
    • Aria2下BT开始是有点慢的,多等等看有速度没。
      建议直接传种子文件上去下载,不要用磁力链接。

      LALA2个月前 (05-20) TheWorld Browser TheWorld Browser Windows 7 x64 Edition Windows 7 x64 Edition回复
      • 已解决 添加了tracker有速度了 :wink:

        luk2个月前 (05-20) Yandex Browser 17.6.1.345.00 Yandex Browser 17.6.1.345.00 Android 6.0.1 Android 6.0.1回复
  10. #10

    开启脚本,下载文件自动上传后,sh CPU一直占用100% :cry:

    darcy袋鼠2个月前 (05-20) Google Chrome 66.0.3359.181 Google Chrome 66.0.3359.181 Windows 10 x64 Edition Windows 10 x64 Edition回复
    • 莫不是小鸡的CPU性能太差= =

      LALA2个月前 (05-21) TheWorld Browser TheWorld Browser Windows 7 x64 Edition Windows 7 x64 Edition回复
  11. #11

    为何按照教程配置,启动了nginx之后,浏览器地址栏内输入vps的ip之后没办法打开图示的网页啊

    J0ker2个月前 (05-22) Google Chrome 58.0.3029.61 Google Chrome 58.0.3029.61 Windows 10 x64 Edition Windows 10 x64 Edition回复
    • 看看防火墙关了没:systemctl stop firewalld.service

      LALA2个月前 (05-23) TheWorld Browser TheWorld Browser Windows 7 x64 Edition Windows 7 x64 Edition回复
      • 搞定了,手动在防火墙里开启80和23333端口就能访问了,感谢老哥

        J0ker2个月前 (05-24) Google Chrome 58.0.3029.61 Google Chrome 58.0.3029.61 Windows 10 x64 Edition Windows 10 x64 Edition回复
  12. #12

    我遇到一个奇怪的问题,aria2会自动调用脚本,但是脚本里的rclone move命令没有效果。
    我在终端用直接执行rclone move,效果正常。
    我把rclone move命令单独写在一个脚本里,用当前用户执行,效果正常。
    我把自动上传的脚本的chmod 777了,还是不行,aria2自动执行没有效果。

    脚本在此:http://telegra.ph/aria2%E4%B8%8B%E8%BD%BD%E5%AE%8C%E8%87%AA%E5%8A%A8%E4%B8%8A%E4%BC%A0%E8%84%9A%E6%9C%AC-05-24

    zelik2个月前 (05-24) Google Chrome 66.0.3359.181 Google Chrome 66.0.3359.181 Windows 10 x64 Edition Windows 10 x64 Edition回复
    • 有时候是有点玄学。。。另外我文章里面这个脚本只针对文件夹做了更改,如果下载的是单个文件是没处理的。你可以看到下面这段代码:
      rclone move “$filepath” g:
      1、把rclone move改成mv
      2、g:改成你的挂载盘路径
      然后试试看。

      LALA2个月前 (05-24) TheWorld Browser TheWorld Browser Windows 7 x64 Edition Windows 7 x64 Edition回复
  13. #13

    老哥aria2的配置文件在哪里啊,ariang的高级设置里显示配置文件路径是在/root/.config/aria2/aria2.conf,可是我试了.config这个目录里没有aria这个文件夹啊。。

    J0ker2个月前 (05-29) Google Chrome 58.0.3029.61 Google Chrome 58.0.3029.61 Windows 7 x64 Edition Windows 7 x64 Edition回复
    • 你按照我的这个配置Aria2是直接用命令行带参数运行的,没有加载配置文件运行,所以自然也就没有配置文件这个东西。这不会影响AriaNG对Aria2的设置进行更改,基本上配置文件能修改的东西,在AriaNG里面一样能够修改并生效。

      LALA2个月前 (05-30) TheWorld Browser TheWorld Browser Windows 7 x64 Edition Windows 7 x64 Edition回复
      • 原来是这样,但这有个小小的不足就是vps重启之后之前在ng里设置的tracker啥的都没了,得重新添加一下 :!:

        J0ker2个月前 (05-30) Google Chrome 58.0.3029.61 Google Chrome 58.0.3029.61 Windows 7 x64 Edition Windows 7 x64 Edition回复
        • 这个确实我没考虑进去,但是既然都运行正常了,为啥要总是重启。。。

          LALA2个月前 (05-31) TheWorld Browser TheWorld Browser Windows 7 x64 Edition Windows 7 x64 Edition回复
          • 有时候会有一些小意外嘛,比如我之前添加了个容量大于vps硬盘空间的离线任务,然后瞬间就把磁盘占满了。。。

            J0ker2个月前 (06-01) Google Chrome 67.0.3396.62 Google Chrome 67.0.3396.62 Windows 7 x64 Edition Windows 7 x64 Edition
  14. #14

    小白一枚,nginx能用apache代替吗,nginx一直安装不上,貌似和gcc有关,虽然是centos7

    lyviecs1周前 (07-09) Google Chrome 68.0.3440.42 Google Chrome 68.0.3440.42 Windows 10 x64 Edition Windows 10 x64 Edition回复
    • 嗯,成功了,最后把ariang放在根目录能用,但是在下层目录里打不开,可能是权限的问题吧

      lyviecs1周前 (07-09) Google Chrome 68.0.3440.42 Google Chrome 68.0.3440.42 Windows 10 x64 Edition Windows 10 x64 Edition回复
    • 可以的,只要是个网页服务器都可以。

      LALA6天前 Google Chrome 66.0.3359.181 Google Chrome 66.0.3359.181 Windows 10 x64 Edition Windows 10 x64 Edition回复
  15. #15

    lala大佬 请问这个能配合qBitTorrent使用吗

    no5天前 Google Chrome 69.0.3487.1 Google Chrome 69.0.3487.1 Windows 10 x64 Edition Windows 10 x64 Edition回复
    • 貌似不行,QB没有办法在下载完成后自动执行脚本这种功能。

      LALA3天前 Google Chrome 66.0.3359.181 Google Chrome 66.0.3359.181 Windows 10 x64 Edition Windows 10 x64 Edition回复

分享创造快乐

广告合作资源投稿

觉得文章有用就请我吃包薯片吧

支付宝扫一扫打赏