欢迎来到好人卡资源网,专注网络技术资源收集,我们不仅是网络资源的搬运工,也生产原创资源。寻找资源请留言

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

linux sky995 1年前 (2021-04-19) 420次浏览 0个评论

Aria2+OneDrive、Aria2+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. 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授予执行权限

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


好人卡资源网 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Aria2+天翼网盘——使用Aria2下载再自动上传到天翼网盘实现离线下载的功能
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址