本文及资源最后更新时间 2021-04-19 by sky995
Aria2+OneDrive、Aria2+GoogleDrive大家都已经玩了很久了,不过说天翼网盘的似乎还没见过
其实原理都是一样的,Aria2下载完成后调用下载完成事件
的脚本,脚本内容就是上传到网盘
本文中烈日下的男人|好人卡资源网就以Linux CentOS7 amd64为例
一、安装Aria2
1. 安装必要软件
- yum install –y wget curl ca–certificates
2. 使用一键脚本安装Aria2
- cd ~
- wget –N git.io/aria2.sh && chmod +x aria2.sh
- ./aria2.sh
按照提示安装
安装完成后会显示RPC 端口
、RPC 密钥
、下载目录
、AriaNg 链接
等信息
二、安装天翼网盘CLI工具
这里我们借助到天翼云盘 CLI Python
,是一个Python语言编写的天翼网盘CLI程序,我们上传文件就用它实现
1. 安装Python3.8.7
安装依赖
- yum –y groupinstall “Development Tools”
- 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
- apt update
- apt install –y build–essential zlib1g–dev libncurses5–dev libgdbm–dev libnss3–dev libssl–dev libreadline–dev libffi–dev curl
下载包并解压
- cd /tmp
- wget https://www.python.org/ftp/python/3.8.7/Python-3.8.7.tgz
- tar –zxf Python–3.8.7.tgz
- cd Python–3.8.7
编译安装
- ./configure –prefix=/usr/local/python3
- make && make install
建立软连接
- ln –s /usr/local/python3/bin/python3.8 /usr/bin/python3
- ln –s /usr/local/python3/bin/pip3.8 /usr/bin/pip3
也可以不建立软连接,后面脚本里改为绝对路径即可,这样的话好像就不会影响以后的Python版本了。
测试
- python3 –V
- pip3 –V
2. 安装cloud189
从git克隆代码
- yum –y install git
- cd ~
- git clone https://github.com/Aruelius/cloud189.git
- cd cloud189
- pip3 install –r requirements.txt
配置账号和路径
- python3 main.py
按照提示输入账号密码登录
在cloud189
CLI模式下创建文件夹,我如我在根目录创建一个aria2
作为离线下载的保存目录,然后进入这个文件夹
cloud189
CLI模式下命令和Linux命令相似,输入help
可以查看帮助
现在你可以测试一下上传文件,命令是python3 main.py upload [本地文件/夹路径]
目前是不支持指定远程(天意网盘)上传路径的,所以我们一开始就要配置好这里的路径,如嗷嗷选择的是全部文件/aria2
三、配置Aria2的下载完成事件脚本
修改/root/.aria2c/aria2.conf
,找到“下载完成后执行的命令”,把clean.sh替换为upload-189.sh。
如果你不是用这个脚本安装的,没有这一行,就新增一行,写下面的内容
- # 下载完成后执行的命令
- on–download–complete=/root/.aria2c/upload–189.sh
本来想用自带的rclone脚本修改一下,但是打开看了一下,头大,就找了萌鼠博客的脚本
https://www.moerats.com/archives/482/
就是把原来的命令改为我们用的python命令即可
把下列内容写到/root/.aria2c/upload-189.sh
,记得通过chmod +x /root/.aria2c/upload-189.sh
授予执行权限
- #!/bin/bash
- GID=“$1”;
- FileNum=“$2”;
- File=“$3”;
- MinSize=“5” #限制最低上传大小,默认5k
- MaxSize=“157286400” #限制最高文件大小(单位k),默认15G
- #RemoteDIR=”/RATS/”; #rclone挂载的本地文件夹,最后面保留/
- LocalDIR=“/root/downloads/”; #Aria2下载目录,最后面保留/
- if [[ –z $(echo “$FileNum” |grep –o ‘[0-9]*’ |head –n1) ]]; then FileNum=‘0’; fi
- if [[ “$FileNum” –le ‘0’ ]]; then exit 0; fi
- if [[ “$#” != ‘3’ ]]; then exit 0; fi
- function LoadFile(){
- IFS_BAK=$IFS
- IFS=$‘\n’
- if [[ ! –d “$LocalDIR” ]]; then return; fi
- if [[ –e “$File” ]]; then
- FileLoad=“${File/#$LocalDIR}”
- while true
- do
- if [[ “$FileLoad” == ‘/’ ]]; then return; fi
- echo “$FileLoad” |grep –q ‘/’;
- if [[ “$?” == “0” ]]; then
- FileLoad=$(dirname “$FileLoad”);
- else
- break;
- fi;
- done;
- if [[ “$FileLoad” == “$LocalDIR” ]]; then return; fi
- EXEC=“$(command -v python3)”
- if [[ –z “$EXEC” ]]; then return; fi
- Option=” ~/cloud189/main.py upload”;
- cd “$LocalDIR”;
- if [[ –e “$FileLoad” ]]; then
- ItemSize=$(du –s “$FileLoad” |cut –f1 |grep –o ‘[0-9]*’ |head –n1)
- if [[ –z “$ItemSize” ]]; then return; fi
- if [[ “$ItemSize” –le “$MinSize” ]]; then
- echo –ne “\033[33m$FileLoad \033[0mtoo small to spik.\n”;
- return;
- fi
- if [[ “$ItemSize” –ge “$MaxSize” ]]; then
- echo –ne “\033[33m$FileLoad \033[0mtoo large to spik.\n”;
- return;
- fi
- #eval “${EXEC}${Option}” \'”${FileLoad}”\’ “${RemoteDIR}”;
- eval “${EXEC}${Option}” \’“${FileLoad}”\’;
- rm –rf “${FileLoad}”
- fi
- fi
- IFS=$IFS_BAK
- }
- LoadFile;
基本就是这样,能rclone就能用这个
修改完配置必须重启aria2,使用命令bash ~/aria2.sh
执行脚本,然后按照提示重启。
四、测试图片
写在后面
嗷嗷一开始配置下载目录错了,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