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