woapi-server为Office Online Server文档在线预览提供文档加载地址

‌一、配置Office Online Server支持文档在线预览

上一篇文章我们说了如何搭建Office文档在线预览服务 Office Online Server(以下简称OOS),搭建好之后,设置可以通过URL打开文档参考 "OpenFromUrlEnabled",具体Powershell命令如下:

bash 复制代码
New-OfficeWebAppsFarm -InternalURL "http://192.168.75.158" -AllowHttp -EditingEnabled -OpenFromUrlEnabled

其他命令可查阅官方文档:

https://learn.microsoft.com/zh-cn/powershell/module/officewebapps/?view=officewebapps-ps

https://github.com/MicrosoftDocs/office-docs-powershell/blob/main/officewebapps/officewebapps-ps/officewebapps/officewebapps.md

配置好之后,可以通过访问:http://[服务域名]/op/generate.aspx 访问文档在线预览的演示页面,如下图:

二、WOPI Server

WOPI Server是基于‌WOPI协议的‌文件预览服务,主要用于与‌Office Online Server(‌微软的在线文档预览工具)集成,实现文档的在线查看和编辑功能。以下是关键信息:

核心功能:

  • 协议支持:遵循WOPI协议,通过CheckFileInfo和GetFile接口与Office Online Server交互 。 ‌
  • 文件预览:支持Word、Excel、PPT、PDF等格式的在线预览,需搭配Office Online Server使用 。

技术实现:

  • 开发语言:常见实现包括Java(如zzq0324/wopi-server项目)和C# 。 ‌

  • WOPI协议定义了文档宿主系统(您的应用)与Office Online Server之间的通信标准。集成需要实现两个关键接口:

    • ‌**/wopi/files/{name}/contents**‌ - 用于获取和保存文档内容
    • ‌**/wopi/files/{name}**‌ - 用于获取文档元数据和操作权限
  • 部署要求:需配置WOPI Host(自定义服务器)和WOPI Client(Office Online Server) 。 ‌

使用示例 ‌‌

  • URL构造:用户访问自定义WOPI Server的页面(如https://your-wopi-server.com/wopi/files/123),页面内嵌iframe加载Office Online Server的预览地址(如https://oos.example.com/we/wordeditorframe.aspx?WOPISrc=...) 。 ‌‌
  • 配合OOS使用如下
bash 复制代码
word:http://192.168.2.109/wv/wordviewerframe.aspx?WOPISrc=http%3a%2f%2f192.168.2.102%3a8080%2fwopiserver%2ffiles%2f2%3faccess_token%3dOfficeOnlineServer
pdf:http://192.168.2.109/wv/wordviewerframe.aspx?PdfMode=1&WOPISrc=http%3a%2f%2f192.168.2.102%3a8080%2fwopiserver%2ffiles%2f4%3faccess_token%3dOfficeOnlineServer
ppt:http://192.168.2.109/p/PowerPointFrame.aspx?WOPISrc=http%3a%2f%2f192.168.2.102%3a8080%2fwopiserver%2ffiles%2f1%3faccess_token%3dOfficeOnlineServer
excel:http://192.168.2.109/x/_layouts/xlviewerinternal.aspx?WOPISrc=http%3a%2f%2f192.168.2.102%3a8080%2fwopiserver%2ffiles%2f3%3faccess_token%3dOfficeOnlineServer

Office Online Server目前支持word/pdf/excel/ppt的预览,效果分别如下:

  1. word

  2. pdf

  3. excel

  4. ppt

开源项目

  • GitHub项目:如cs3org/wopi-server提供本地存储测试支持 。 ‌‌
  • Gitee项目:如zzq0324/wopi-server(Java实现)需配合Office Online Server使用 。 ‌

三、安全加固

Office Online Server存在两个安全隐患,一是OOS暴露到公网的话会被别人利用,二是加载的文档地址容易被盗链。因此就需要以下两个配置进行加固:

bash 复制代码
# 安全配置脚本
# 限制OOS仅加载WOPI提供的文档URL
Set-OfficeWebAppsFarm -WOPIHosts "https://wopi.example.com" -AllowHttp:$false

其中https://wopi.example.com需替换成自己的wopi 服务地址

bash 复制代码
# 防止文档地址被盗
Set-OfficeWebAppsFarm -EditingEnabled:$true -ClipartEnabled:$false

WOPI如何可实现为Office Online Server提供预览的文档地址外,还可以提供在线编辑。通过对wopi接口协议的实现,可完善自己的office 文档在线预览和编辑功能。

相关推荐
hello 早上好10 小时前
05_Java 类加载过程
java·开发语言
2501_9419820510 小时前
别再手动发群消息了!企业微信外部群自动化推送的架构设计与实现
运维·自动化·企业微信
echoVic10 小时前
多模型支持的架构设计:如何集成 10+ AI 模型
java·javascript
REDcker10 小时前
埋点系统设计:从成熟工具到自建方案
运维·服务器·网络·用户分析·埋点·埋点系统
橙露10 小时前
Java并发编程进阶:线程池原理、参数配置与死锁避免实战
java·开发语言
ai_xiaogui10 小时前
【开源前瞻】从“咸鱼”到“超级个体”:谈谈 Panelai 分布式子服务器管理系统的设计架构与 UI 演进
服务器·分布式·架构·分布式架构·panelai·开源面板·ai工具开发
echoVic10 小时前
AI Agent 安全权限设计:blade-code 的 5 种权限模式与三级控制
java·javascript
先做个垃圾出来………10 小时前
SSH密钥管理最佳实践
运维·ssh
PPPPickup10 小时前
easymall---图片上传以及图片展示
java
RisunJan10 小时前
Linux命令-lpr(从命令行提交文件到打印机打印)
linux·运维·服务器