接上篇,利用rclone自动上传aria2下载的文件到onedrive或者googledrive

/ 0评 / 3

配置rclone就不写了,利用官方给的脚本很顺利就能安装完毕:

curl https://rclone.org/install.sh | sudo bash

然后利用rclone config命令选择挂载你要的云盘服务。
要想实现利用rclone自动上传aria2下载的文件到onedrive或者googledrive,很简单加一个自动脚本即可,上篇CENTOS7宝塔下安装ARIA2和ARIANG添加HTTPS访问支持中,我们根本没用rclone把Googledrive建立映射到vps上面,原因:没有必要。

如果你非得挂载,可以用下面步骤:

yum -y install fuse
mkdir -p /home/onedrive

rclone mount rclonename:/SYN /home/onedrive

nohup rclone mount rclonename:/SYN /home/onedrive &

因为挂载了其实最终的目的还是转移到自己的云盘空间中,vps的硬盘能有多大,要折腾都是在云盘中。如果你是土豪当我没说。这篇手记就是解决后续利用rclone自动上传aria2下载的文件到onedrive或者googledrive。
到aria2的目录创建脚本:

vi autoupload.sh

脚本如下(作者:P3TERX,git页面地址:https://github.com/P3TERX/aria2_perfect_config):

#!/bin/bash
#=================================================
# Description: Aria2 download completes calling Rclone upload
# Lisence: MIT
# Version: 1.8
# Author: P3TERX
# Blog: https://p3terx.com
#=================================================

downloadpath='/root/Download' #Aria2下载目录
name='Onedrive' #配置Rclone时填写的name
folder='/DRIVEX/Download' #网盘里的文件夹,留空为整个网盘。
retry_num=3 #上传失败重试次数

#=================下面不需要修改===================
filepath=$3 #Aria2传递给脚本的文件路径。BT下载有多个文件时该值为文件夹内第一个文件,如/root/Download/a/b/1.mp4
rdp=${filepath#${downloadpath}/} #路径转换,去掉开头的下载路径。
path=${downloadpath}/${rdp%%/*} #路径转换。下载文件夹时为顶层文件夹路径,普通单文件下载时与文件路径相同。

Task_INFO(){
echo
echo -e "[\033[1;32mUPLOAD\033[0m] Task information:"
echo -e "-------------------------- [\033[1;33mINFO\033[0m] --------------------------"
echo -e "\033[1;35mDownload path:\033[0m${downloadpath}"
echo -e "\033[1;35mFile path: \033[0m${filepath}"
echo -e "\033[1;35mUpload path: \033[0m${uploadpath}"
echo -e "\033[1;35mRemote path:\033[0m${remotepath}"
echo -e "-------------------------- [\033[1;33mINFO\033[0m] --------------------------"
echo
}

Upload(){
retry=0
while [ $retry -le $retry_num -a -e "${uploadpath}" ]; do
[ $retry != 0 ] && echo && echo -e "Upload failed! Retry ${retry}/${retry_num} ..." && echo
rclone move -v "${uploadpath}" "${remotepath}"
rclone rmdirs -v "${downloadpath}" --leave-root
retry=$(($retry+1))
done
[ -e "${uploadpath}" ] && echo && echo -e "Upload failed: ${uploadpath}" && echo
[ -e "${path}".aria2 ] && rm -vf "${path}".aria2
[ -e "${filepath}".aria2 ] && rm -vf "${filepath}".aria2
}

if [ $2 -eq 0 ]
then
exit 0
fi

echo && echo -e " \033[1;33mU P L O A D ! ! !\033[0m" && echo
echo && echo -e " \033[1;32mU P L O A D ! ! !\033[0m" && echo
echo && echo -e " \033[1;35mU P L O A D ! ! !\033[0m" && echo

if [ "$path" = "$filepath" ] && [ $2 -eq 1 ] #普通单文件下载,移动文件到设定的网盘文件夹。
then
uploadpath=${filepath}
remotepath="${name}:${folder}"
Task_INFO
Upload
exit 0
elif [ "$path" != "$filepath" ] && [ $2 -gt 1 ] #BT下载(文件夹内文件数大于1),移动整个文件夹到设定的网盘文件夹。
then
uploadpath=${path}
remotepath="${name}:${folder}/${rdp%%/*}"
Task_INFO
Upload
exit 0
elif [ "$path" != "$filepath" ] && [ $2 -eq 1 ] #第三方度盘工具下载(子文件夹或多级目录等情况下的单文件下载)、BT下载(文件夹内文件数等于1),移动文件到设定的网盘文件夹下的相同路径文件夹。
then
uploadpath=${filepath}
remotepath="${name}:${folder}/${rdp%/*}"
Task_INFO
Upload
exit 0
fi
Task_INFO

需要修改的地方只有这三行:

downloadpath='/root/Download' #Aria2下载目录
name='Onedrive' #配置Rclone时填写的name
folder='/DRIVEX/Download' #网盘里的文件夹,留空为整个网盘。

/root/Download 这个对应你aria2的下载目录,Onedrive对应你配置rclone的时候设置的名称,/DRIVEX/Download对应你想同步上传到你网盘的哪个目录,如果留空就是根目录。
修改完毕后,给这个脚本权限:

chmod +x autoupload.sh

然后编辑aria2的配置文件,在任意位置加上这句:

# 调用 rclone 上传(move)到网盘
on-download-complete=/root/.aria2/autoupload.sh

这就是利用rclone的on-download-complete自动上传aria2下载好的文件。
重新启动aria2:

service aria2 restart

大功告成!

发表评论

电子邮件地址不会被公开。 必填项已用*标注