之前写了两篇关于OneDrive网盘目录程序的文章,最近发现了又一个网盘程序,看了下作者的 dome 感觉非常棒,特来折腾一番,程序基于的 PHP框架 Laravel搭建,并通过 Microsoft Graph接口获取数据展示。基于 bootswatch响应式页面布局,适配PC、平板、手机。建议宝塔面板部署,手动部署可能有点麻烦,宝塔面板的安装和 LNMP 环境自行百度。
功能
- OneDrive 目录查看索引分页查看;
- 支持代码、图片、文本文件即时预览、图片列表栏展示;
- 支持音视频播放(兼容大部分格式),视频播放采用 Dplayer.js,音乐播放采用 Aplayer;
- 支持自定义创建文件夹、文件夹加密、文件/文件夹删除、文件/文件夹的复制与移动;
- 支持文件搜索、文件上传、文件直链分享与删除、文件直链一键下载;
- 支持管理 readme/head 说明文件;
- 支持图床;
- 支持命令行操作;
- 支持文件离线下载(个人版);
- 后台基本显示管理,多主题管理,文件预览管理等等(清理缓存后及时生效)
- 支持世纪互联;
- 支持多种缓存系统(Redis、Memcached等)
项目地址
https://github.com/WangNingkai/OLAINDEX
演示地址
PHP 扩展要求
- PHP >= 7.4
- PHP OpenSSL 扩展
- PHP PDO 扩展
- PHP Mbstring 扩展
- PHP Tokenizer 扩展
- PHP XML 扩展
- PHP Ctype 扩展
- PHP JSON 扩展
- PHP BCMath 扩展
- PHP Fileinfo 扩展 *(建议安装)
程序部署
1.PHP扩展安装,安装 fileinfo
扩展并附带安 opcache
扩展以加速 php
运行和安装 redis
用作缓存,也可以安装 memcached
扩展。个人推荐redis
1.1.PHP禁用函数
修改 PHP
配置,需要删除两个禁用的函数:proc_open 和 putenv
2.新建站点, 在面板里添加一个站点,然后 ssh
切换到站点的目录下,新版宝塔面板自带 ssh
终端。
2.1 执行安装,下面的命令依次执行。⚠️注意: # 号及 # 号后边的内容为注释,别无脑复制
$ git clone https://github.com/WangNingkai/OLAINDEX.git tmp
$ mv tmp/.git .
$ rm -rf tmp
$ git reset --hard
$ composer install -vvv # 安装
$ chmod -R 777 storage # 授权
$ chown -R www:www *
$ composer run install-app # 安装
到此就安装好了 OLAINDE
执行过最后一句可能会报错 如下内容:
Script php artisan install handling the install-app event returned with error code 1
这是因为数据库的问题,只需要修改目录下的 .env
文件中关于数据库的相关配置,然后再执行最后一句即可!我用的 MySQL+Redis
,以下是我的 .env
配置示意图:
3.配置站点信息,勾选取消防跨站攻击(open_basedir)
将站点的运行目录改为 public
3.1 伪静态修改,选择 Laravel 5
3.2 修改配置文件,注释选定内容,防止图片出现 404
程序配置
1.上面就完成了程序的部署,现在就进行帐号设置和世纪互联的目录挂载,浏览器打打开:https://域名/admin
,填写给出的默认的账户和密码登录后台,后台可以修改帐号和密码。
默认帐号:admin、密码:123456
1.1目录挂载,打开帐号列表,默认是没有的,点新增。
1.2 国际版 OneDrive
如图所示,把回调URL
改了后点击申请,然后把申请的ID
和key
填回来,点保存就可以了,流程很简单,这里不再赘述了。
申请 client_id
和 client_secret
1.3 世纪互联版 OneDrive
不能直接点申请,需要单独去世纪互联的Azure Active Directory
去注册应用。
- 打开世纪互联的
Microsoft Azure
https://portal.azure.cn - 在左侧列表选择
Azure Active Directory
- 选择:应用注册
- 点击:新注册
应用注册
- 在名称处填入为新应用起的名字
- 在重定向
URL
处选择Web
并在后面的框中填入olaindex
提供的回调redirect_uri
链接, - 如:https://xxx/callback
API权限
- 点击右侧的
API
权限 - 添加权限
- 选择常用
Microsoft API
- 选择委托的权限
- 找到
Files (2)
,Files.ReadWrite
和Files.ReadWrite.All
两项 添加权限进行保存
证书和密码
- 所看到值 就是所需的
client_secret
应用程序ID
- 返回到主界面上应用程序(客户端)ID 就是所需的
client_id
初始化配置
- 弄完了,回到程序的初始化配置,把
ID
和secret
填进去,选择世纪互联,保存就完事。
后台配置
显示设置
图片
bmp jpg jpeg png gif
视频
mkv mp4 webm qlv
Dash 视频(不支持个人版账户)
avi mpg mpeg rm rmvb mov wmv asf ts flv
音频
mp3 ogg wav flac ape
文档
text json md
代码
html htm css go java js ts sh php py
文件流
txt log
特殊文件功能
在文件夹头部添加说明
在onedrive的文件夹中添加HEAD.md 文件,使用markdown语法
在文件夹底部添加说明
在onedrive的文件夹中添加README.md文件,使用markdown语法
版本更新
$ git pull $ composer install # 安装依赖更新包 $ chmod -R 755 storage # 注意!!!确保缓存目录具有读写权限,否则500 $ chown -R www:www * # 确保目录权属
- 所看到值 就是所需的
6 comments
世纪互联能不能白嫖?
白嫖世纪互联? 你要是白嫖到了告诉我一声啊 ::aru:aru137::
文章写得好,网站都很吊
::QQ:qq-36::
ψ(°Д°)ψ 麻麻他开挂了!
::QQ:qq-63::