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

相关推荐
悟空码字1 分钟前
从零到一搭建SpringCloud微服务,一场代码世界的“分家”大戏
java·后端·spring cloud
2301_767902641 分钟前
Containerd 从入门到实战
运维·容器
于樱花森上飞舞5 分钟前
【多线程】常见的锁策略与锁
java·开发语言·算法·java-ee
吃喝不愁霸王餐APP开发者7 分钟前
使用Mockito与WireMock对美团霸王餐接口进行契约测试与集成验证
java·json
Mr-Wanter8 分钟前
麒麟V10x86 系统 curl报错SSLv3符号缺失问题解决
linux·服务器·github
明洞日记9 分钟前
【设计模式手册023】外观模式 - 如何简化复杂系统
java·设计模式·外观模式
独自归家的兔10 分钟前
面试实录:三大核心问题深度拆解(三级缓存 + 工程规范 + 逻辑思维)
java·后端·面试·职场和发展
HUST10 分钟前
C 语言 第八讲:VS实用调试技巧
运维·c语言·开发语言·数据结构·算法·c#
毕设源码-郭学长11 分钟前
【开题答辩全过程】以 共享单车后台管理系统为例,包含答辩的问题和答案
java·开发语言·tomcat
北城以北888812 分钟前
SpringBoot--SpringBoot集成RabbitMQ
java·spring boot·rabbitmq·java-rabbitmq