OneIndex 和 OneDrive 搭建共享型网盘

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/ 目录
相关推荐
python ERROR: Command errored out with exit status 1:
Windows Server 2016 搭建 SMB 共享文件
Windows Server 2019 域环境搭建 SMB 共享文件服务
Parallels Desktop 15.1.3