使用Aria2+Aria2Ng+OneIndex+OneDrive建立不限流量/离线BT下载/在线观看网盘


获取OneDrive

现在OneIndex是可以使用个人的OneDrive网盘,不过容量太小,很难满足一些人的需求,可以向本人申请OneDrive 5T空间,联系:[email protected]

安装

1、安装LNMP

screen -S lnmp
wget http://soft.vpser.net/lnmp/lnmp1.5.tar.gz -cO lnmp1.5.tar.gz && tar zxf lnmp1.5.tar.gz && cd lnmp1.5 && ./install.sh lnmp

只安装PHP5.6+、Nginx,并且可以安装伪静态以及SSL

2、安装OneIndex

先添加域名,然后上传程序文件到网站根目录/home/wwwroot/xx.com,将文件解压出来,并设置config/、cache/可读写权限,程序下载:OneIndex.zip

也可以使用命令上传到根目录:

#Debian/Ubuntu系统
apt-get install git -y
#CentOS系统
yum install git -y

#修改为自己域名根目录后再运行
cd /home/wwwroot/xx.com
git clone https://github.com/donwa/oneindex.git
mv oneindex/* ./
chmod 777 ./config && chmod 777 ./cache

最后打开域名进行安装和绑定OneDrive了,后台地址:https://xx.com/?/admin,默认密码:oneindex。

如果图片显示404,把站点配置文件/usr/local/nginx/conf/vhost/xx.com.conf里的以下部分删掉

location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
access_log off;
}

如果是想让http强制跳转到https,站点示例配置如下:

server {
listen 443 ssl;
server_name www.lnmp.org;
省略其他配置
}
server {
listen 80;
server_name lnmp.org;
return 301 https://www.lnmp.org$request_uri;
}

按上面例子修改完成后保存,执行:/etc/init.d/nginx restart 重启nginx,使其生效。

3、安装Aria2

这里用的逗比的脚本,使用命令:

wget -N --no-check-certificate https://wget.5752.me/Computer/code/aria2.sh?hash=LxzB3r5D&download=1 && chmod +x aria2.sh && bash aria2.sh

安装完成后,如果我们想修改密码、下载文件位置、端口的话,可以使用命令bash aria2.sh,再选择修改配置即可,这里建议使用该脚本配置自动更新BT-Tracker服务器,对下载BT有加成。

4、安装AriaNg

这一步和安装OneIndex差不多,先添加一个域名,不想用域名的可以在添加域名那里填上IP或者IP:端口,然后将AriaNg程序上传到对应的根目录,可以使用命令:

#这里以添加域名为例
#Debian/Ubuntu系统
apt-get install unzip -y
#CentOS系统
yum install unzip -y

cd /home/wwwroot/xx.com
wget https://wget.5752.me/Computer/code/aria-ng-0.2.0.zip?hash=LxzB3r5D&download=1 && unzip aria-ng-0.2.0.zip

这时候我们就可以使用域名访问AriaNg界面了,或者IP:端口。

因为我站点一般都是强制HTTPS跳转的,发现搭建好AriaNG之后输入密码可以正常连接RPC,就可以正常工作了。之后的话我配置HTTPS的时候就无论如何都认证失败,这个问题出在aira2没有配置证书。首先我们需要修改/root/.aria2/aria2.conf

vi /root/.aria2/aria2.conf
把rpc-secure=true前面的#注释掉
把rpc-certificate=/root/xxx.pem前面的#注释掉,并且把/root/xxx.pem替换成你HTTPS站点所配置的pem文件(有的也可以是crt文件)
把rpc-private-key=/root/xxx.key前面的#注释掉,并且把/root/xxx.key替换成你HTTPS站点所配置的key私钥文件。

然后保存重启aria2,这个时候再打开HTTPS的AriaNG网站,输入RPC密钥,即可连接成功。

5、配置Aria2上传

安装脚本
安装curl,用于访问API:

#Ubuntu和Debian系统
apt-get install -y curl

#Centos系统
yum install curl -y

运行命令安装脚本:

wget --no-check-certificate -qO- "https://wget.5752.me/Computer/code/OneDrive.sh?hash=LxzB3r5D&download=1" |bash

本脚本需要三个参数Client ID、Secret、Reply URL,均需要在/usr/local/etc/OneDrive/onedrive.cfg文件里修改,参数获取看下面,当然你也可以不用管,直接进行下一个步骤

运行账号认证程序

运行命令onedrive -a,将返回的网址复制到浏览器打开,再登陆你的OneDrive for Business账号,登陆成功后复制地址栏中的地址,并提取code的字段(code=后面至&前面),粘贴到SSH客户端里,敲回车键即可。

如果返回以下字段:It seems like we have a refresh token, so we are ready to go,那就恭喜你,设置成功!

Aria2自动上传

先在/root/.aria2文件夹新建一个上传脚本,命名oneindexup.sh。这里也可以使用vi命令

vi /root/.aria2/oneindexup.sh

将以下代码修改后,复制进脚本:

#!/bin/bash

GID="$1";
FileNum="$2";
File="$3";
MaxSize="15728640"
RemoteDIR="";
LocalDIR="/usr/local/caddy/www/aria2/Download/"; #Aria2下载目录,记得最后面加上/

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(){
IFS_BAK=$IFS
IFS=$'\n'
if [[ ! -d "$LocalDIR" ]]; then return; fi
if [[ -e "$File" ]]; then
if [[ $(dirname "$File") == $(readlink -f $LocalDIR) ]]; then
ONEDRIVE="onedrive";
else
ONEDRIVE="onedrive-d";
fi
FileLoad="${File/#$LocalDIR}"
while true
do
if [[ "$FileLoad" == '/' ]]; then return; fi
echo "$FileLoad" |grep -q '/';
if [[ "$?" == "0" ]]; then
FileLoad=$(dirname "$FileLoad");
else
break;
fi;
done;
if [[ "$FileLoad" == "$LocalDIR" ]]; then return; fi
if [[ -n "$RemoteDIR" ]]; then
Option=" -f $RemoteDIR";
else
Option="";
fi
EXEC="$(command -v $ONEDRIVE)";
if [[ -z "$EXEC" ]]; then return; fi
cd "$LocalDIR";
if [[ -e "$FileLoad" ]]; then
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$File \033[0mtoo large to spik.\n";
return;
fi
eval "${EXEC}${Option}" \'"${FileLoad}"\';
if [[ $? == '0' ]]; then
rm -rf "$FileLoad";
fi
fi
fi
IFS=$IFS_BAK
}
LoadFile;

然后再授权:

chmod +x /root/.aria2/oneindexup.sh

最后在配置文件aria2.conf里加上一行on-download-complete=/root/.aria2/oneindexup.sh,可以直接使用命令:

echo "on-download-complete=/root/.aria2/oneindexup.sh" >>/root/.aria2/aria2.conf
#重启Aria2
service aria2 restart

也可以直接上传我的文件oneindexup.sh

关于更改上传目录

修改/usr/local/etc/OneDrive/onedrive.cfg配置文件,默认是使用export api_root_folder=”root”,直接上传到网盘根目录。修改为自定义文件夹上传是有问题的,但是修改为官方给的文件夹是可以上传的。

export api_root_folder="special/documents"

在网盘显示为“文档”,注:documents后面不能再添加文件夹



【上一篇】 【下一篇】

Posted in 教程 ,教育 ,网络 ,软件 | Tags: , ,

0 条评论

添加评论

[ Ctrl + Enter ]