0%

使用oneindex+OneDrive搭建私人网盘

抛弃x度,拥抱OneDrive。

使用宝塔创建一个网站

创建网站的目的是为了通过域名访问网站。当然,也可以不创建网站,直接通过IP地址访问。

如果没有宝塔,建议先安装一个,也可以手动改Apache或Nginx的的配置文件。

宝塔新建网站的步骤,略…

部署oneindex源码

执行下列shell指令:

1
2
3
cd /path/to/site_root
rm -rf index.html 404.html
curl https://raw.githubusercontent.com/pkemb/oneindex/master/create_oneindex_site.sh | bash

访问网站设置key

略…

伪静态

如果想去掉URL中的问号,首先进入后台管理,在基本设置中,开启下图所示的选项。

然后进入宝塔的网站设置页面,在伪静态填入如下内容。

1
2
3
4
5
6
7
8
9
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;
}

定时刷新

宝塔添加一个定时任务,类型选择shell脚本,脚本内容如下。

1
php /path/to/site/one.php cache:refresh

reply URL错误

如果绑定账号时出现下面的错误,说明oneindex设置的redirect_uri与APP设置的url不一致。

1
AADSTS50011: The reply URL specified in the request does not match the reply urls configured for the application

查看文件controller/AdminController.php第186行,查看oneindex的设置。访问azure.com,更改APP的重定向URL。

持续运行一段时间后无法获取文件

类似于下图的情况,网站可以访问,但是看不到任何文件。

经过一番搜索,找到一篇博客,经过分析,原因是refreshtoken没有更新。解决方法是修改lib/onedrive.php,添加一行config('refresh_token', $token['refresh_token']);