一开始折腾了半天,总是无法自动上传,最终参考 @ZYong 的文章成功实现~

安装Aria2

  • 使用逗比的安装脚本,运行以下任一命令并选择1安装Aria2
# Github
wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/aria2.sh && chmod +x aria2.sh && bash aria2.sh

# Gitee
wget -N --no-check-certificate https://gitee.com/fengsec/Aria-OneDrive/raw/master/aria2.sh && chmod +x aria2.sh && bash aria2.sh
  • 安装完成后,如果忘记配置信息或者想修改配置信息,可以运行脚本
$ bash aria2.sh
  • 配置BT服务器。运行脚本,选择10自动更新BT-Tracker服务器,然后输入y
$ bash aria2.sh

获取授权

http://localhost/onedrive-login?code=OAQABAAIAAAAm-06blBE1TpVMil8KPQ41c8bkjrEMWeBECgahoaqGcj0fJocbWU4C7RNHI7D4yyQuFy1GSSPxtd7hXG-HmiJJ68KwgNoFmE6-5duZfnpT1L2Jge8NIu1Ul6dWP0TMcNQsC.......I89IlFR-hfQuYKjZIMxF5kpikIoeIAA&session_state=6dea7d52-c3a8-4add-a4a3-421254474f40
  • 安装OneDriveUploader。可以使用以下命令下载,也可以直接到Github/Gitee下载后上传到/usr/local/bin/目录
# 64位系统下载
$ wget https://gitee.com/fengsec/Aria-OneDrive/raw/master/OneDriveUploader/amd64/linux/OneDriveUploader -P /usr/local/bin/

# 32位系统下载
$ wget https://gitee.com/fengsec/Aria-OneDrive/raw/master/OneDriveUploader/i386/linux/OneDriveUploader -P /usr/local/bin/

# arm架构下载
$ wget https://gitee.com/fengsec/Aria-OneDrive/raw/master/OneDriveUploader/arm/linux/OneDriveUploader -P /usr/local/bin/

  • 下载完成后授权
$ chmod +x /usr/local/bin/OneDriveUploader
  • 获取OneDrive授权,将url换成上面复制的授权地址,包括http://loaclhost
# 国际版/教育版
OneDriveUploader -a "url"

# 个人版/家庭版
OneDriveUploader -ms -a "url"

# 中国版(世纪互联)
OneDriveUploader -cn -a "url"
  • 如果提示Init config file: /path/to/file/auth.json类似信息,则初始化成功
  • 测试。在本地随便创建一个文件,然后上传。若能上传成功再继续进行
$ touch 1.txt
$ /usr/local/bin/OneDriveUploader -s "1.txt"

自动上传

  • 在root目录下新建rcloneupload.sh, 填入以下代码

    • 如果使用aria2.sh脚本修改了下载目录,这里也需要修改
#!/bin/bash

GID="$1";
FileNum="$2";
File="$3";
MaxSize="15728640";
Thread="3";    # 默认3线程,自行修改,服务器配置不好的话,不建议太多
Block="20";    # 默认分块20m,自行修改
RemoteDIR="";  # 上传到Onedrive的路径,默认为根目录,如果要上传到File目录,""里面请填成File
LocalDIR="/usr/local/caddy/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}" -skip
  if [[ $? == '0' ]]; then
    rm -rf "${FileLoad}";
  fi
  IFS=$IFS_BAK
}
LoadFile;
  • 授权
$ chmod +x rcloneupload.sh
  • 再修改Aria2配置文件
$ vim /root/.aria2/aria2.conf 

# 最后一行加入以下代码
on-download-complete=/root/rcloneupload.sh

安装宝塔

  • 一键脚本
# Centos
$ yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

# Ubuntu/Deepin
$ wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
  • 安装PHP7.2Nginx1.16
  • 安全组放行Aria端口,默认6800,否则AriaNg无法连接

安装AriaNg

  • AriaNg

  • 下载AriaNg源码后,在BT面板创建一个站点, 将源码放在站点根目录上即可
  • 打开网页访问该站点,显示未连接。选择左侧AriaNg设置,右侧选择RPC,输入配置信息后刷新页面,左侧显示已连接即可
  • 再选择左侧Aria2设置>BitTorrent 设置,拉到最下面,最小做种时间输入0。

安装OneIndex

已弃坑,现转用OLAINDEX

  • OneIndex

  • 这个就不多说了,只需要添加一个站点然后放入OneIndex源码,然后访问站点安装即可,不懂的百度即可
  • 修改站点配置文件,把以下内容注释,避免出现404
#    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
#    {
#        expires      30d;
#        error_log off;
#        access_log /dev/null;
#    }
#    
#    location ~ .*\.(js|css)?$
#    {
#        expires      12h;
#        error_log off;
#        access_log /dev/null; 
#    }
  • 配置站点伪静态。打开站点伪静态配置,输入以下代码,并在OneIndex后台-基本设置中勾选去掉地址栏中的/?/ (需配合伪静态使用!!)
if (!-f $request_filename){
  set $rule_0 1$rule_0;
}
if (!-d $request_filename){
  set $rule_0 2$rule_0;
}
if ($rule_0 = "21"){
  rewrite ^/(.*)$ /index.php?/$1 last;
}
  • 自动页面页面缓存
$ crontab -e

# 添加以下一行
*/10 * * * * php /www/wwwroot/one/one.php cache:refresh
  • 如果出现Permission denied错误,直接给OneIndex目录777权限即可

网盘远程下载

这里使用神器PanDownload,具体操作方法请查看文档:PanDownload - 远程下载

总结

  • 遇到的问题

    • 上传时出现:unexpected end of JSON input

      • 这是因为授权文件auth.json被误操作覆盖了,重新授权即可
  • 授权文件:/root/auth.json
  • 自动上传脚本:/root/rcloneupload.sh
  • Aria一键管理脚本:/root/aria2.sh
  • Aria2目录:/root/.aria2/
  • OneDriveUploader命令请参考OneDriveUploader下的README.md
$ OneDriveUploader -s "文件"     # 上传文件
$ OneDriveUploader -s "文件" &   # 上传文件并后台运行
如果觉得我的文章对你有帮助,请我吃颗糖吧~