OneIndex是什么?有什么功能?OneIndex是一个开源的项目,点击前往Github的项目地址。他的功能主要是不占用服务器空间,不走服务器流量,直接列出 OneDrive 目录,文件直链下载。安装他的需求也是十分的简单需要有一个PHP空间或者VPS、PHP的版本要5.6以上、 需要打开curl支持、OneDrive 账号 (个人、企业版或教育版/工作或学校帐户)、OneIndex 程序。满足以上几个简单的条件就可以搭建一个共享型的网盘。如果你没有OneDrive的账号可以自行Baidu或Goole,有大把教程再不济淘宝几块钱搞定。但是我建议在放入重要的资料前需要你先了解OneDrive在决定是否使用,因为翻车几率高。
搭建成功的前端界面
0x01 准备所需的PHP
具体的过程省略,可以使用宝塔或者LNMP创建一个网站,我的主机使用LNMP,所以以下都是通过命令方式来展示。
0x02 下载OneIndex
ssh登录到网站的目录,使用wget下载OneIndex,然后解压到当前目录或者直接解压到网站的根目录
cd /home/wwwroot/down.pangzhan.net # 进入到网站的根目录 wget https://github.com/donwa/oneindex/archive/master.zip # 下载OneIndex PHP程序压缩包 unzip master.zip # 解压master.zip cd oneindex-master # 进入到oneindex-master目录 mv * /home/wwwroot/down.pangzhan.net # 移动当前目录所有文件到网站根目录 cd .. # 返回上一级目录
0x03 配置OneIndex
此时已经可以通过绑定的域名访问OneIndex,但是需要授予config、cache这两个目录777或者755的权限,如果过没有权限在访问时将会提示无法进行下一步
chmod 755 -R /home/wwwroot/down.pangzhan.net # 授予网站根目录755权限 chown www:www -R /home/wwwroot/down.pangzhan.net # 授予网站根目录www用户组权限
授予权限后可以正常进入到下一步
0x04 程序ID和机密
点击“获取应用ID和机密(分两个页面显示,请注意保存)”会跳转到登录页面
输入创建的微软账号和密码(OneDrive必须有微软的账号)
应用机密,这个机密只会显示一次,把这个机密复制粘贴到程序安装对应的机密栏位,确定复制好了,然后点击“知道了,返回到快速启动”此时页面会跳转,如果在此时没有复制那就要从上一步在来一次
在上一步的跳转页面上找到以下“App ID”复制粘贴到程序配置的应用ID
0x05 请求许可
应用机密和应用ID填写完毕后,点击下一步。此时会跳转到微软的授权页面如下图,点击接受即可
0x06 安装成功
许可授权成功后,会提示程序安装成功,此时即可通过网站绑定的域名访问到OneDrive的目录
0x07 添加计划
这个是推荐配置非必需。添计划任务让后台定时刷新缓存,可增加前台访问的速度。
crontab -e # 添加任务 0 * * * * php /home/wwwroot/down.pangzhan.net/one.php token:refresh # 每小时刷新一次token */10 * * * * php /home/wwwroot/down.pangzhan.net/one.php cache:refresh # 每十分钟后台刷新一遍缓存
0x08 伪静态规则
# Nginx伪静态规则 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; }
0x09 特殊功能
README.md、HEAD.md 、 .password特殊文件使用
在文件夹底部添加说明:在 OneDrive 的文件夹中添加README.md文件,使用 Markdown 语法。
在文件夹头部添加说明:在 OneDrive 的文件夹中添加HEAD.md 文件,使用 Markdown 语法。
加密文件夹:在 OneDrive 的文件夹中添加.password文件,填入密码,密码不能为空。
直接输出网页:在 OneDrive 的文件夹中添加index.html 文件,程序会直接输出网页而不列目录。配合 文件展示设置-直接输出 效果更佳。
0x10 命令行功能
以下命令仅能在PHP CLI模式下运行
php one.php cache:clear # 清除缓存 php one.php cache:refresh # 刷新缓存 php one.php token:refresh # 刷新令牌 php one.php upload:file 本地文件 [OneDrive文件] # 上传文件 php one.php upload:folder 本地文件夹 [OneDrive文件夹] # 上传文件夹 命令举例: php one.php upload:file demo.zip # //上传demo.zip 到OneDrive 根目录 php one.php upload:file demo.zip /test/ # //上传demo.zip 到OneDrive /test/目录 php one.php upload:file demo.zip /test/d.zip # //上传demo.zip 到OneDrive /test/目录并将其命名为 d.zip php one.php upload:file up/ /test/ # //上传up/ 到OneDrive /test/ 目录