https://github.com/gaowanliang/OneDriveUploader
加了实时的上传速度显示,同时支持Telegram实时监控上传,在后台上传或者是通过自动化脚本上传的时候可以直接不用打开控制台就可以查看上传进度。同时支持Aria2的自动化脚本上传,代码如下
#!/bin/bash
GID="$1";
FileNum="$2";
File="$3";
MaxSize="15728640000";
Thread="3"; #默认3线程,自行修改,服务器配置不好的话,不建议太多
Block="20"; #默认分块20m,自行修改
RemoteDIR=""; #上传到Onedrive的路径,默认为根目录,如果要上传到MOERATS目录,""里面请填成MOERATS
LocalDIR="/root/Download/"; #Aria2下载目录,记得最后面加上/
Uploader="/usr/local/bin/OneDriveUploader"; #上传的程序完整路径,默认为本文安装的目录
Config="/root/.aria2/auth.json"; #初始化生成的配置auth.json绝对路径
path="$3" #取原始路径,我的环境下如果是单文件则为/data/demo.png,如果是文件夹则该值为文件夹内某个文件比如/data/a/b/c/d.jpg
downloadpath='/root/Download' #下载目录
find $downloadpath -name '*.aria2' -type f -print -exec rm -rf {} \;
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(){
if [[ ! -e "${Uploader}" ]]; then return; fi
IFS_BAK=$IFS
IFS=
详情大家可以点进去查看,大家可以找找bug,同时不妨点个star支持一下\n'
tmpFile="$(echo "${File/#$LocalDIR}" |cut -f1 -d'/')"
FileLoad="${LocalDIR}${tmpFile}"
if [[ ! -e "${FileLoad}" ]]; then return; fi
ItemSize=$(du -s "${FileLoad}" |cut -f1 |grep -o '[0-9]*' |head -n1)
if [[ -z "$ItemSize" ]]; then return; fi
if [[ "$ItemSize" -ge "$MaxSize" ]]; then
echo -ne "\033[33m${FileLoad} \033[0mtoo large to spik.\n";
return;
fi
${Uploader} -c "${Config}" -t "${Thread}" -b "${Block}" -f "${FileLoad}" #这里可以加上你的Telegram Bot,就可以上传的时候实时监控,具体写法参考readme
done
rm -rf $downloadpath+"/*" #加这一句会清空下载文件夹
}
LoadFile;