OpenList的Office文档预览新方式-基于宝塔面板Docker容器的BaseMetas Fileview安装与配置教程
OpenList是著名的开源网盘管理系统AList的开源分支支持挂载网盘、S3兼容对象存储、本地文件夹等多种数据存储系统也内置了多种格式文档的在线预览功能。Office文档是OpenList使用中较为常见的文件格式之一OpenList采用了微软预览API接口以及谷歌预览API接口来实现Office文档的预览功能但是在国内使用时微软预览API接口较为不稳定时而能打开时而打不开谷歌API预览接口则由于网络原因根本无法使用给预览效果造成了极大的不便。BaseMetas Fileview 为企业级文档预览引擎提供标准化 API、高并发支撑与横向扩展能力可嵌入 OA、SaaS 等系统。因此我将尝试安装并部署BaseMetas Fileview并将其用于OpenList的文档预览功能。一、在宝塔面板的Docker中安装并配置BaseMetas Fileview①登录宝塔面板管理后台点击左侧Docker然后先点击上方栏目中的“本地镜像”再点击下方左侧“从仓库中拉取”②在弹出来的窗口中先点击“命令拉取”再复制粘贴下方链接docker pull basemetas/fileview:1.5.1然后点击右边的“执行命令”当下方命令行界面中显示“bt_succesful”时可以关闭窗口提醒最新版本可前往官网文档处复制“docker hub”下方的链接③此时BaseMetas Fileview的Docker镜像已经被成功拉取点击右侧的“创建容器”④在弹出来的窗口中进行以下修改可参考下图最后点击右下角的“保存”1.容器名称BaseMetas随意取名 2.本地端口9000 3.容器80 4.对外暴露打开⑤现在通过“服务器IP:9000”的方式已经能够访问到这个Docker项目首页二、利用域名反向代理Docker中的BaseMetas Fileview项目①在宝塔面板后台中点击左侧“网站”然后点击右侧“添加站点”②填入想要反向代理Docker中的BaseMetas Fileview项目的域名“PHP版本”可以选择“纯静态”然后点击右下角的“确定”③网站新建完成后点击右侧的“设置”④在弹出的窗口中建议先给网站配置好HTTPS即左侧的SSL然后点击左侧的“反向代理”再点击右侧的“添加反向代理”⑤在弹出的窗口中进行以下修改可参考下图最后点击右下角的“确定”1.代理名称basemetas随意取名 2.目标URLhttp://服务器IP:9000 3.发送域名$host⑥记得在DNS服务商中添加新域名的IP地址解析稍等片刻已经可以用域名的方式访问Docker中的BaseMetas Fileview项目了三、利用域名作为OpenList在线预览文件的“转换器”①再次点击宝塔面板左侧“网站”然后点击右侧“添加站点”②输入一个新域名或新的二、三……级域名选择PHP版本不用太老就行建议8.0及以上然后点击右下角的“确定”③网站新建完成后点击右侧的“设置”④在弹出的窗口中建议先配置好HTTPS即SSL然后关闭窗口⑤点击进入刚刚创建好的网站的根目录⑥找到“新建”点击下方的“新建空白文本”⑦将文件命名为“proxy.php”⑧找到刚刚新建的“proxy.php”文件在右侧“更多”中点击“编辑”⑨复制粘贴以下代码并根据实际情况进行修改可参考下图然后点击左上角的“保存”?php $url $_GET[url] ?? ; if ($url ) { http_response_code(400); exit(Missing url); } $config json_encode( [url $url], JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES ); if ($config false) { http_response_code(500); exit(JSON encode error); } $data base64_encode($config); header( Location: https://设置了反向代理的域名第一个域名/preview/view?data . urlencode($data), true, 302 ); exit;⑩记得在DNS服务商中添加新域名的IP地址解析四、OpenList中增加BaseMetas Fileview的预览选项①登录OpenList管理员后台点击左侧“设置”-“预览”在右侧找到“iframe预览”并对第一项doc,docx,xls,xlsx,ppt,pptx进行修改增加一行即可可参考下图doc,docx,xls,xlsx,ppt,pptx: { basemetas:https://view.botaokeji.net/proxy.php?url$e_url, Microsoft:https://view.officeapps.live.com/op/view.aspx?src$e_url, Google:https://docs.google.com/gview?url$e_urlembeddedtrue },②现在就可以选择一个Office文档进行测试预览成功提示由于服务器性能、带宽的影响预览服务需要一段时间缓冲转圈圈请耐心等待哦五、参考资料①BaseMetas Fileview文档②proxy.php文件代码编写以及bug修复DeepSeekChatGPT