高玩梁 大佬有话说 : 2021-4-2 20:27:53
一个简单的OneDrive上传工具
本帖最后由 高玩梁 于 2021-4-2 20:50 编辑
OneDrive的列表程序已经很多了,但是OneDrive的上传的程序出名的就rclone一个,rclone确实是挺好,但是有的时候也会出现bug,比如会突然挂载失效之类的问题,同时配置起来有一点点麻烦。
对于单文件即可运行的的OneDrive上传工具,萌咖大佬写了一个非常好的版本 https://github.com/MoeClub/OneList/tree/master/OneDriveUploader,可惜并没有开源,安全性不能保证,而且已经好久都没有更新了。
于是我就从我当初写的DownloadBot里把里面的OneDrive的上传程序独立出来,搞出了这个OneDrive上传工具
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 ‘*’ |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 ‘*’ |head -n1)
if [[ -z "$ItemSize" ]]; then return; fi
if [[ "$ItemSize" -ge "$MaxSize" ]]; then
echo -ne "