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 文档在线预览和编辑功能。

相关推荐
Hui Baby1 小时前
maven自动构建到镜像仓库
java·maven
Tandy12356_1 小时前
手写TCP/IP协议栈——环境配置
服务器·网络·网络协议·tcp/ip
czlczl200209251 小时前
SpringBoot手动配置:WebMvcConfigurer接口实现类的生效原理
java·spring boot·后端
程序员皮皮林1 小时前
SpringBoot + nmap4j 获取端口信息
java·spring boot·后端
小二·1 小时前
Spring框架入门:Spring 中注解支持详解
java·后端·spring
豐儀麟阁贵1 小时前
8.6运行时异常
java·开发语言
桃子叔叔1 小时前
Prompt Engineering完全指南:从基础到高阶技术实战
java·服务器·prompt
CRUD酱1 小时前
RabbitMQ是如何确保消息的可靠性的?
java·python·rabbitmq
百花~1 小时前
Spring IoC&DI~
java·后端·spring