Aria2+天翼网盘——使用Aria2下载再自动上传到天翼网盘实现离线下载的功能

一只鱼 2年前 (2021) 一只鱼
3,783 0

Aria2+OneDriveAria2+GoogleDrive大家都已经玩了很久了,不过说天翼网盘的似乎还没见过

其实原理都是一样的,Aria2下载完成后调用下载完成事件的脚本,脚本内容就是上传到网盘

本文中嗷嗷以Linux CentOS7 amd64为例

一、安装Aria2

1. 安装必要软件

  1. yum install -y wget curl ca-certificates

2. 使用一键脚本安装Aria2

  1. cd ~
  2. wget -N git.io/aria2.sh && chmod +x aria2.sh
  3. ./aria2.sh

按照提示安装

Aria2+天翼网盘——使用Aria2下载再自动上传到天翼网盘实现离线下载的功能

安装完成后会显示RPC 端口RPC 密钥下载目录AriaNg 链接等信息

Aria2+天翼网盘——使用Aria2下载再自动上传到天翼网盘实现离线下载的功能

二、安装天翼网盘CLI工具

这里我们借助到天翼云盘 CLI Python,是一个Python语言编写的天翼网盘CLI程序,我们上传文件就用它实现

1. 安装Python3.8.7

安装依赖

  1. yum -y groupinstall "Development Tools"
  2. yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel

如果是Debian、Ubuntu

  1. apt update
  2. apt install -y build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev curl

下载包并解压

  1. cd /tmp
  2. wget https://www.python.org/ftp/python/3.8.7/Python-3.8.7.tgz
  3. tar -zxf Python-3.8.7.tgz
  4. cd Python-3.8.7

编译安装

  1. ./configure --prefix=/usr/local/python3
  2. make && make install

建立软连接

  1. ln -s /usr/local/python3/bin/python3.8 /usr/bin/python3
  2. ln -s /usr/local/python3/bin/pip3.8 /usr/bin/pip3

也可以不建立软连接,后面脚本里改为绝对路径即可,这样的话好像就不会影响以后的Python版本了。

测试

  1. python3 -V
  2. pip3 -V

2. 安装cloud189

从git克隆代码

  1. yum -y install git
  2. cd ~
  3. git clone https://github.com/Aruelius/cloud189.git
  4. cd cloud189
  5. pip3 install -r requirements.txt

配置账号和路径

  1. python3 main.py

按照提示输入账号密码登录

Aria2+天翼网盘——使用Aria2下载再自动上传到天翼网盘实现离线下载的功能

cloud189CLI模式下创建文件夹,我如我在根目录创建一个aria2作为离线下载的保存目录,然后进入这个文件夹

Aria2+天翼网盘——使用Aria2下载再自动上传到天翼网盘实现离线下载的功能

cloud189CLI模式下命令和Linux命令相似,输入help可以查看帮助

Aria2+天翼网盘——使用Aria2下载再自动上传到天翼网盘实现离线下载的功能

现在你可以测试一下上传文件,命令是python3 main.py upload [本地文件/夹路径]

目前是不支持指定远程(天意网盘)上传路径的,所以我们一开始就要配置好这里的路径,如嗷嗷选择的是全部文件/aria2

Aria2+天翼网盘——使用Aria2下载再自动上传到天翼网盘实现离线下载的功能

三、配置Aria2的下载完成事件脚本

修改/root/.aria2c/aria2.conf,找到“下载完成后执行的命令”,把clean.sh替换为upload-189.sh。
如果你不是用这个脚本安装的,没有这一行,就新增一行,写下面的内容

  1. # 下载完成后执行的命令
  2. ondownloadcomplete=/root/.aria2c/upload189.sh

本来想用自带的rclone脚本修改一下,但是打开看了一下,头大,就找了萌鼠博客的脚本
https://www.moerats.com/archives/482/

就是把原来的命令改为我们用的python命令即可

把下列内容写到/root/.aria2c/upload-189.sh,记得通过chmod +x /root/.aria2c/upload-189.sh授予执行权限

  1. #!/bin/bash
  2. GID=”$1″;
  3. FileNum=”$2″;
  4. File=”$3″;
  5. MinSize=”5″ #限制最低上传大小,默认5k
  6. MaxSize=”157286400″ #限制最高文件大小(单位k),默认15G
  7. #RemoteDIR=”/RATS/”; #rclone挂载的本地文件夹,最后面保留/
  8. LocalDIR=”/root/downloads/”; #<a href=”https://haoduck.com/tag/aria2″ title=”查看更多关于Aria2的文章” target=”_blank”>Aria2</a>下载目录,最后面保留/
  9. if [[ -z $(echo “$FileNum” |grep -o ‘[0-9]*’ |head -n1) ]]; then FileNum=’0′; fi
  10. if [[ “$FileNum” -le ‘0’ ]]; then exit 0; fi
  11. if [[ “$#” != ‘3’ ]]; then exit 0; fi
  12. function LoadFile(){
  13.      IFS_BAK=$IFS
  14.      IFS=$’\n’
  15.      if [[ ! -d “$LocalDIR” ]]; then return; fi
  16.      if [[ -e “$File” ]]; then
  17.          FileLoad=”${File/#$LocalDIR}”
  18.          while true
  19.               do
  20.                   if [[ “$FileLoad” == ‘/’ ]]; then return; fi
  21.                   echo “$FileLoad” |grep -q ‘/’;
  22.                   if [[ “$?” == “0” ]]; then
  23.                       FileLoad=$(dirname “$FileLoad”);
  24.                   else
  25.                       break;
  26.                   fi;
  27.               done;
  28.          if [[ “$FileLoad” == “$LocalDIR” ]]; then return; fi
  29.          EXEC=”$(command -v python3)”
  30.          if [[ -z “$EXEC” ]]; then return; fi
  31.          Option=” ~/cloud189/main.py upload”;
  32.          cd “$LocalDIR”;
  33.          if [[ -e “$FileLoad” ]]; then
  34.               ItemSize=$(du -s “$FileLoad” |cut -f1 |grep -o ‘[0-9]*’ |head -n1)
  35.               if [[ -z “$ItemSize” ]]; then return; fi
  36.               if [[ “$ItemSize” -le “$MinSize” ]]; then
  37.                     echo -ne “\033[33m$FileLoad \033[0mtoo small to spik.\n”;
  38.                     return;
  39.              fi
  40.              if [[ “$ItemSize” -ge “$MaxSize” ]]; then
  41.                     echo -ne “\033[33m$FileLoad \033[0mtoo large to spik.\n”;
  42.                     return;
  43.             fi
  44.             #eval “${EXEC}${Option}” \'”${FileLoad}”\’ “${RemoteDIR}”;
  45.             eval “${EXEC}${Option}” \'”${FileLoad}”\’;
  46.             rm -rf “${FileLoad}”
  47.          fi
  48.      fi
  49.      IFS=$IFS_BAK
  50. }
  51. LoadFile;

 

基本就是这样,能rclone就能用这个

修改完配置必须重启aria2,使用命令bash ~/aria2.sh执行脚本,然后按照提示重启。

四、测试图片

Aria2+天翼网盘——使用Aria2下载再自动上传到天翼网盘实现离线下载的功能 Aria2+天翼网盘——使用Aria2下载再自动上传到天翼网盘实现离线下载的功能

写在后面

嗷嗷一开始配置下载目录错了,Aria2的下载目录是/root/downloads/,上传脚本里写的是/root/download/,所以浪费了很多时间。

果然,世上无难事,只要”肯放弃”。折腾良久不得法,暂且放下打游戏,放松过后就发现问题所在了。

感谢:
Aria2脚本:https://github.com/P3TERX/aria2.sh
天翼网盘CLI工具:https://github.com/Aruelius/cloud189
上传脚本:https://www.moerats.com/archives/482/

另(本文没用到,但可以选择的):
Aria2脚本:https://github.com/ToyoDAdoubiBackup/doubi#aria2sh
天翼网盘CLI工具:https://github.com/tickstep/cloudpan189-go

 

 

原文转载 :https://haoduck.com/698.html

暂无评论

暂无评论...