Home 基于 Onedrive 建站 (oneindex)
Post
Cancel

基于 Onedrive 建站 (oneindex)

文章写于 2022.05.09,文章并无最新适配,可能无法复现。另推荐使用较新的项目

通过 Onedrive 可以建立网盘网站,例如我的VRChat网盘已经没了,还可以直接建立网页,或者图床

oneindex 简介

Github: https://github.com/avedu/oneindex

Onedrive Directory Index,不占用服务器空间,不走服务器流量,直接列出 OneDrive 目录,文件直链下载。

环境

需要 PHP5.6+,需打开 curl 支持,新手(比如我)建议直接使用宝塔直接部署,方便快捷

另因宝塔隐私泄露风波,有一些其他版本如宝塔纯净版,请自行识别安装

安装

从 Github 将仓库下载并上传至网站根目录并解压缩

然后访问网站,进入安装程序

检测

首先是同意条款,如果点击同意会返回,请将地址栏中最后的 &mdui-dialog 删除后按回车

如果环境正常点击下一步

程序安装

点击获取应用ID和机密(分两个页面显示,请注意保存),然后登陆微软账号

保持出现的应用机密,然后点击知道了,返回快速启动

注意:此机密仅会显示一次,请妥善保存

然后选择一门语言,比如Python,点击Get a client ID,复制获得的Client ID

返回安装程序界面,输入应用机密Client ID,然后点击下一步

点击绑定账号,选择接受即可

如果出现错误

请返回输入应用机密Client ID的界面,打开 Azure 的应用注册,这里应该有俩应用

找到名为 oneindex 的应用,复制它的应用程序(客户端)ID填入Client ID

还有一个没什么用,可以直接删除

管理

安装完成后会有管理后台访问网站选项

可以进入管理后台修改网站名称,主题,后台密码等 (初始密码: oneindex)

后台网址为您的域名/?/admin

伪静态

设置 apache 或者 nginx 的 rewrite (使用 wordpress 的配置即可)

以上为原作者的原话(部分内容有修改),因我使用宝塔,遂说明宝塔如何配置

在宝塔面板的网站进入设置里伪静态,选择wordpress保存即可

在网站管理后台将伪静态勾选保存即可

这样链接中?会去除,访问后台可直接您的域名/admin

特殊文件实现功能

Markdown 语法可参考我写的文章Markdown 笔记

在文件夹底部添加说明:

在 OneDrive 的文件夹中添加README.md文件,使用 Markdown 语法。

在文件夹头部添加说明:

在 OneDrive 的文件夹中添加HEAD.md 文件,使用 Markdown 语法。

加密文件夹:

在 OneDrive 的文件夹中添加.password文件,填入密码,密码不能为空。

直接输出网页:

在 OneDrive 的文件夹中添加index.html 文件,程序会直接输出网页而不列目录。 配合 文件展示设置-直接输出 效果更佳。

因为直接输出网页,可以直接搭网站

访问其他文件正常,但访问图片出现404

这是由于服务器软件 (Nginx/Apache) 接管了图片处理,删除相关配置即可

以下为使用宝塔

网站-配置文件将下述代码注释掉即可

1
2
3
4
5
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
  expires      30d;
  access_log on; 
}

改为

1
2
3
4
5
#location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
#{
#  expires      30d;
#  access_log on; 
#}

此问题参考部署 OneDrive for business (PHP)客户端程序 OneIndex 详细教程 - VirCloud’s Blog - Learning&Sharing

命令行功能

仅能在 PHP CLI 模式下运行

清除缓存:

1
php one.php cache:clear

刷新缓存:

1
php one.php cache:refresh

刷新令牌:

1
php one.php token:refresh

上传文件:

1
php one.php upload:file 本地文件 [OneDrive文件]

上传文件夹:

1
php one.php upload:folder 本地文件夹 [OneDrive文件夹]

例如:

1
2
3
4
5
6
7
8
9
10
11
//上传demo.zip 到OneDrive 根目录  
php one.php upload:file demo.zip  

//上传demo.zip 到OneDrive /test/目录  
php one.php upload:file demo.zip /test/  

//上传demo.zip 到OneDrive /test/目录并将其命名为 d.zip  
php one.php upload:file demo.zip /test/d.zip  

//上传up/ 到OneDrive /test/ 目录  
php one.php upload:file up/ /test/

计划任务

[可选]推荐配置,非必需。后台定时刷新缓存,可增加前台访问的速度。

1
2
3
4
5
# 每小时刷新一次token
0 * * * * /具体路径/php /程序具体路径/one.php token:refresh

# 每十分钟后台刷新一遍缓存
*/10 * * * * /具体路径/php /程序具体路径/one.php cache:refresh

Docker安装运行

请参考 TimeBye/oneindex

This post is licensed under CC BY 4.0 by the author.

宝塔面板搭建 OLAINDEX

宝塔面板搭建 CuteOne