主要过程是用Aria2进行下载,然后上传到OneDrive云盘并用OneIndex关联云盘实现网页访问。

获取OneDrive

申请OneDrive5T账号

两个申请OneDrive云盘5T的方法:

1、申请微软的Office 365开发者计划,地址:免费获得一年的21TB OneDrive和Microsoft Office 365企业
2、使用热心大佬提供的临时邮箱申请一个,方法如下:

1)、进入注册地址https://products.office.com/en-us/student?tab=students
2)、输入如有乐享提供的临时邮箱,地址:https://51.ruyo.net/8263.html
3)、填入密码,和从临时邮箱获取的验证码

授权

授权认证:

点击右侧URL登录并授权,授权地址→ 国际版       世纪互联

授权后会获取一个localhost开头打不开的链接,这里只需要记住code,也就是链接中code=和&中间的参数。

安装Aria2

以下操作都是在服务器端执行

$ cd /root
$ wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/aria2.sh && chmod +x aria2.sh && bash aria2.sh
#备用地址
$ wget -N --no-check-certificate https://www.moerats.com/usr/shell/Aria2/aria2.sh && chmod +x aria2.sh && bash aria2.sh

安装后可以使用bash aria2.sh命令修改Aria2的默认下载目录、端口号、密码等

安装OneDriveUploader

$ wget https://raw.githubusercontent.com/MoeClub/OneList/master/OneDriveUploader/amd64/linux/OneDriveUploader -P /usr/local/bin/
# 授权
$ chmod +x /usr/local/bin/OneDriveUploader
# 初始化配置
#将moerats替换成授权步骤中获取的code参数
$ code="moerats"
$ OneDriveUploader -a "${code}"

如果提示 Init config file: /root/auth.json 类似信息,则初始化成功。

手动上传示例:

# -c指定初始化文件位置,-s指定上传文件,-r指定网盘目录,不指定默认为根目录
# 将当前目录下的Download文件夹上传到OneDrive网盘Test目录中
$ OneDriveUploader -c /root/auth.json -s "Download" -r "Test"

配置Aria2的自动上传

# 新建文件
$ touch rcloneupload.sh
# 修改文件内容
$ vim rcloneupload.sh

将文件内容修改为下面内容,注意替换Aria2的下载目录

#!/bin/bash

GID="$1";
FileNum="$2";
File="$3";
MaxSize="15728640";
Thread="3";  #默认3线程,自行修改,服务器配置不好的话,不建议太多
Block="20";  #默认分块20m,自行修改
RemoteDIR="";  #上传到Onedrive的路径,默认为根目录,如果要上传到MOERATS目录,""里面请填成MOERATS
LocalDIR="/www/download/";  #Aria2下载目录,记得最后面加上/
Uploader="/usr/local/bin/OneDriveUploader";  #上传的程序完整路径,默认为本文安装的目录
Config="/root/auth.json";  #初始化生成的配置auth.json绝对路径,参考第3步骤生成的路径


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=$'\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}" -s "${FileLoad}" -r "${RemoteDIR}"
  if [[ $? == '0' ]]; then
    rm -rf "${FileLoad}";
  fi
  IFS=$IFS_BAK
}
LoadFile;

授权

$ chmod +x rcloneupload.sh

bash aria2.sh修改配置文件,加上一行:

on-download-complete=/root/rcloneupload.sh

重启Aria2生效

测试一下

试一下

bash /root/rcloneupload.sh

正常为无反应,如果报错:

1、安装dos2unix
$ apt-get install dos2unix -y
2、转换格式
$ dos2unix /root/rcloneupload.sh

Aria2离线下载的使用

谷歌浏览器插件 aria2 for chrome

进去之后AriaNg设置——>添加新RPC设置,配置如下:

image.png

然后添加任务即可进行离线下载,并自动上传到OneDrive

OneIndex对接网盘

OneIndex可以对接Onedrive网盘,将网盘里的内容直接显示成目录,视频可以在线播放。也可以搭建自己的在线图床/视频播放系统。

使用docker安装Oneindex

$ docker run -d -p 8181:80 --restart=always baiyuetribe/oneindex

然后访问ip:8181按照提示操作即可

效果图:

image.png

如果要进入系统管理页面,访问ip:8181/?/login

可选,域名访问

如果有自己的域名,可以通过反向代理进行http访问

宝塔反代:先进入宝塔面板,点击左侧网站,添加站点,完成后进入网站设置,点击反向代理,目标URL填入http://127.0.0.1:8181,再启用反向代理即可。

宝塔界面可一键安装:

$ wget -O install.sh http://download.bt.cn/install/install-ubuntu.sh && sudo bash install.sh