最近被迫宅在家闲来无事,就搞了个VPS玩玩。找了几圈,发现个比较实用的用法:

搭建一个基于OLAINDEX+onedrive的网盘,可通过aria2离线下载。

(onedrive作为微软旗下的云存储产品,速度质量比起某毒盘不知道高到哪里去了。)




为什么选择OLAINDEX

OLAINDEX受ONEINDEX启发,也是一款onedrive目录索引应用,相比之下功能较多,界面美观(多主题可选),还适配了pad端、移动端。

界面预览:



PC

PC端


mobile

移动端




pad

pad端


*本教程基于Ubuntu18.04,其他系统仅供参考

准备工作
  1. 一个VPS(推荐国外)
  2. 一个onedrive账号(最好是1T以上。)
  3. 三个域名(子域名也可)
  4. 一颗耐心

三个域名我用的是子域名,分别为dl.xx.com【可选】bt.xx.com【可选】pan.xx.com,在域名后台添加三条记录指向你的VPS的IP。如图:


dns
安装宝塔面板

Centos

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh

Ubuntu/Deepin

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

安装完成后会显示信息:

Bt-Panel: http://你的vps的ip:8888/xxx
username: xxxx
password: ****

访问地址进入宝塔面板后台,左侧选择面板设置进行相关设置:

  • 修改登录账号密码和安全入口;
  • 【可选】绑定事先准备好的bt.xx.com,以后访问面板直接输入:bt.xx.com:8888/xxx

    面板设置


配置环境
  • php7.3及以上
  • php扩展:【PHP OpenSSL 扩展】【PHP PDO 扩展】【PHP Mbstring 扩展】【PHP Tokenizer 扩展】【PHP XML 扩展】【PHP Ctype 扩展】【PHP JSON 扩展】【PHP BCMath 扩展】【PHP Fileinfo 扩展】

在宝塔面板左侧软件管理搜索安装,这里安装php7.3nginx 1.18


面板设置


待安装完成之后,开始配置php。
点最右边的设置,再点开安装扩展,安装fileinfoopcache


面板设置



之后再点禁用函数
execshell_execproc_openproc_get_statusputenv移除。重启PHP。


面板设置


安装composer:
宝塔面板已经默认安装composer,不放心得话可以通过以下命令安装:

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer


安装OLAINDEX

网站配置
打开宝塔面板,点击左侧网站,再点添加站点


面板设置



在域名框输入事先准备好的pan.xx.com,下面的php版本选择php7.3,提交。


面板设置



到此,我们的网盘网站在vps上目录为/www/wwwroot/pan.xx.com
接着,我在命令行输入以下命令:
cd /www/wwwroot/pan.xx.com #跳转到网盘站点目录
git clone https://github.com/WangNingkai/OLAINDEX.git tmp
mv tmp/.git .
rm -rf tmp
git reset --hard
composer install -vvv # 这里测试是否成功安装composer
chmod -R 777 storage/
chown -R www:www * # 此处 www 根据服务器具体用户组而定
composer run install-app #出现权限错误请重新运行一遍 chmod -R 777 storage/



站点具体设置
打开宝塔面板,点击左侧网站,点开pan.xx.com最右边的设置,运行目录改为/public,同时去掉防跨站攻击,保存。


面板设置



再点开伪静态,最上面选择laravel5,保存。


面板设置


接着点开配置文件,注释47行至59行内容,防止图片出现404。


面板设置


然后点开SSL,选择Let's Encrypt,打钩域名,然后申请
成功后显示如图,并点开强制HTTPS


面板设置


绑定onedrive

打开后台pan.xx.com/admin,

#账号
admin
#初始密码
123456

选择账号列表页面,点击绑定账号


onedrive绑定



申请中的redirect_uri确认地址为:
https://pan.xx.com/callback,点击申请
会跳转到申请页面,登录onedrive账号授权,复制应用机密,接着点知道了,返回到快速启动。在新的页面中找到应用ID,复制。


onedrive绑定



onedrive绑定



返回到绑定页面,redirect_uri改为:https://pan.xx.com/callback,在client_idclient_secret填入刚刚复制的应用id应用机密
点击保存,跳转绑定页面,绑定就ok了。

Tip:如果绑定页面是空的,在vps上运行以下命令:

cd /www/wwwroot/pan.xx.com #记得替换成你的站点
chmod 777 -R storage/* database/*

该命令同样适用于500|错误

成功绑定,可以访问网盘主页了。


配置aria2


aria2 安装


打开vps,输入:

# 这里使用逗比的一键脚本,还可以自动更新tracker。
wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/aria2.sh && chmod +x aria2.sh && bash aria2.sh
# 备用地址moerats大佬
wget -N --no-check-certificate https://www.moerats.com/usr/shell/Aria2/aria2.sh && chmod +x aria2.sh && bash aria2.sh


onedrive绑定



接着输入1安装aria2,回车。版本选择的地方直接回车。
安装完成后,会显示aria2信息,记得保存。
如果忘记配置信息,也可输入8查看。
输入10配置自动更新 BT-Tracker服务器,加速bt下载。
Aria2 简单配置信息:

地址 : **.**.**.**
端口 : 6800
密码 : **************
目录 : /usr/local/caddy/www/aria2/Download



【可选】ariaNg配置和aria2其他设置



打开宝塔面板,选择网站添加站点,域名填入事先准备好的dl.xx.com,php版本选择纯静态,提交。


onedrive绑定


#跳转到dl网站目录
cd /www/wwwroot/dl.xx.com
#下载ariaNg
wget https://github.com/mayswind/AriaNg/releases/download/1.1.5/AriaNg-1.1.5-AllInOne.zip
#安装unzip
apt install unzip
#解压
unzip AriaNg-1.1.5-AllInOne.zip
#删除下载文件
rm -rf AriaNg-1.1.5-AllInOne.zip

访问dl.xx.com,显示未连接。选择左侧ariaNg设置,右侧选择RPC(dl.xx.com)


onedrive绑定



输入配置信息,刷新页面,左下角显示已连接。


onedrive绑定



再选择左侧aria2设置>BitTorrent 设置,拉到最下面,最小做种时间输入0。


onedrive绑定



自动下载上传(离线下载)

>>>0316已更新船新版本<<<

打开宝塔面板,选择左侧文件,跳转到/root/.aria2目录下,新建一个up.sh
编辑up.sh,输入:

#!/bin/bash
downloadpath='/usr/local/caddy/www/aria2/Download' #修改成Aria2下载文件夹
folder='/lixian' #上传至网盘里的文件夹(自动创建)

if [ $2 -eq 0 ];then
exit 0
fi
path=$3 #取原始路径
olaindex=`find /www/wwwroot -name artisan` #OLAINDEX的artisan文件的绝对路径
while(true);do #path被赋值为Aria2下载目录,filepath被赋值为下载文件的绝对路径或第一层目录
filepath="$path"
path="${path%/*}"
if [ "$path" = "$downloadpath" ] && [ $2 -eq 1 ];then #单文件
php $olaindex od:upload "$filepath" "$folder/" #上传
rm -rf "$filepath" "$filepath.aria2" "$path/*.torrent" #删除
php $olaindex od:cache #刷新
exit 0
elif [ "$path" = "$downloadpath" ];then #文件夹
cd "$filepath"
for file in *;do #第一层目录
php $olaindex od:upload "$file" "$folder/${filepath##*/}"
rm -rf "$file"
done
for file in */* */*/*;do #第二、三层目录
php $olaindex od:upload "$file" "$folder/${filepath##*/}/${file%/*}"
rm -rf "$file"
done
rm -rf "$filepath" "$filepath.aria2" "$path/*.torrent"
php $olaindex od:cache
exit 0
fi
done

保存,然后编辑aria2配置文件:

vi /root/.aria2/aria2.conf

i进入插入模式,在文件中添加一句:

on-download-complete=/root/.aria2/up.sh

Esc,输入:wq保存退出。

重启aria2:

service aria2 restart

这样下载文件到vps后会上传到onedrive再删除vps上的文件。

到此,可离线在线观看视频的网盘搭建完成!

参考:

https://github.com/WangNingkai/OLAINDEX
https://imwnk.cn/archives/bt-olaindex
https://www.jianshu.com/p/4e5bee06ad74