• 欢迎访问好鸭博客网站,WordPress信息,WordPress教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入 QQ群
  • Git主题现已支持滚动公告栏功能,兼容其他浏览器,看到的就是咯,在后台最新消息那里用li标签添加即可。

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

教程 haoduck 3年前 (2020-12-23) 1784次浏览 12个评论

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

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

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

cloud189CLI模式下命令和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


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

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

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

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(12)个小伙伴在吐槽
  1. 大佬 能不能出个docker版 哈哈
    哈哈2020-12-24 09:57 Reply
  2. 你好,请问国内哪些网盘比较好且支持网盘列表程序 :mrgreen:
    Dark2020-12-24 09:58 Reply
    • 天翼网盘、和彩云网盘都不错。速度快,且有现成的列表程序,如tcshare、sharelist等,我记得都是支持这两个网盘的的。
      haoduck2020-12-24 13:00 Reply
  3. 为啥安装完python3.8 python3 -v 还是 3.5.2.。。。
    lrp2020-12-24 18:49 Reply
    • 你需要先卸载原来的版本yum autoremove python3或apt autoremove python3
      haoduck2020-12-24 18:53 Reply
  4. 我的rosi传到世纪互联去 :mrgreen:
    回首掏2020-12-31 10:49 Reply
  5. 不白嫖,支持一下。centos8安装失败,requirements.txt报错。centos7安装成功。请教几个疑问,1,能否后台运行(百度能解决,问下大佬靠谱点)。2,开机启动。3,他这个离线是如何实现的,没有像rclone一样挂载。
    strivep2021-01-21 12:16 Reply
    • 1 2 好像都无需设置什么,3 rclone不挂载也是可以上传的,一样的。
      haoduck2021-01-24 10:13 Reply
  6. Status: Running | Process:秒传检查 | Speed: 0.0B/s | Upload: /root/test.bin -> aria2100M以内文件一致秒传检查
    strivep2021-01-21 13:59 Reply
  7. centos7装好,上传速度10-25kb
    小天2021-01-23 11:41 Reply