Seafile 专业版支持集成 Microsoft Office Online Server(原名 Office Web Apps),以便在浏览器中预览 Office 文档,并使用 Office Online Server 提供的协作编辑功能。
本说明适用于
Seafile 14.0 和 13.0 专业版
。Seafile 支持集成
Office Online Server 2016 及以上版本
。启用集成之前,需要先部署并配置 Office Online Server;其安装和许可要求请参阅
微软 Office Online Server 部署文档
。
部署前准备
-
确保 Office Online Server 已正常运行,并能够提供发现接口(Discovery URL),例如 https://office.example.com/hosting/discovery 。
-
确保用户浏览器能够访问 Office Online Server,同时 Office Online Server 能够访问 Seafile 的 Seahub 服务。Office Online Server 获取文档内容时,需要向 Seahub 发起请求。
-
建议在生产环境中使用 HTTPS,并确认证书有效、域名可解析。
Seafile 自身的 Office 文件预览功能可以继续使用。若希望通过 Office Online Server 预览和编辑文件,需要按照以下步骤启用集成。
配置 Seafile
编辑 Seafile 的
seahub_settings.py
文件。
在默认 Docker 部署中,宿主机上的配置文件位于:
/opt/seafile-data/seafile/conf/seahub_settings.py
如果修改了 Docker 持久化目录,请使用实际路径。二进制包部署时,请编辑 Seafile 安装环境中的
conf/seahub_settings.py
。
在配置文件中添加或修改以下内容:
# 启用 Office Online Server
ENABLE_OFFICE_WEB_APP = True
# Office Online Server 的发现接口地址
# 请替换为实际服务地址
OFFICE_WEB_APP_BASE_URL = 'https://office.example.com/hosting/discovery'
# WOPI 访问令牌的有效期,单位为秒(此处为 24 小时)
WOPI_ACCESS_TOKEN_EXPIRATION = 60 * 60 * 24
# 使用 Office Online Server 预览的文件类型
# 可根据实际支持的文件格式进行调整
OFFICE_WEB_APP_FILE_EXTENSION = (
'ods', 'xls', 'xlsb', 'xlsm', 'xlsx', 'ppsx',
'ppt', 'pptm', 'pptx', 'doc', 'docm', 'docx'
)
# 启用在线编辑
ENABLE_OFFICE_WEB_APP_EDIT = True
# 允许通过 Office Online Server 编辑的文件类型
OFFICE_WEB_APP_EDIT_FILE_EXTENSION = ('xlsx', 'pptx', 'docx')
其中:
配置项
说明
ENABLE_OFFICE_WEB_APP
启用 Office Online Server 集成。
OFFICE_WEB_APP_BASE_URL
Office Online Server 的发现接口 URL,通常以
/hosting/discovery
结尾。
WOPI_ACCESS_TOKEN_EXPIRATION
WOPI 访问令牌有效期(秒)。令牌用于标识文件及相应访问权限。
OFFICE_WEB_APP_FILE_EXTENSION
允许通过 Office Online Server 预览的文件扩展名。
ENABLE_OFFICE_WEB_APP_EDIT
是否启用 Office 文件在线编辑。
OFFICE_WEB_APP_EDIT_FILE_EXTENSION
允许通过 Office Online Server 编辑的文件扩展名。
Office Online Server 2016 支持编辑 .docx 文件。实际可预览、可编辑的文件类型仍取决于 Office Online Server 的能力和部署配置。
HTTPS 证书配置(可选)
如果 Office Online Server 使用自定义 CA 签发的 HTTPS 证书,或要求 Seafile 提供客户端证书,可以在
seahub_settings.py
中配置以下选项。
信任自定义 CA
# 受信任的 CA 证书文件或 CA 证书目录
OFFICE_WEB_APP_SERVER_CA = '/path/to/ca-bundle.crt'
OFFICE_WEB_APP_SERVER_CA
可指定 CA 证书文件,也可指定包含受信任 CA 证书的目录。如果使用目录,该目录需按 OpenSSL 的
c_rehash
方式处理。
提供客户端证书
选择以下两种配置方式之一。
方式一:使用同时包含客户端证书和私钥的 PEM 文件
OFFICE_WEB_APP_CLIENT_PEM = '/path/to/client.pem'
方式二:分别指定客户端证书与私钥文件
OFFICE_WEB_APP_CLIENT_CERT = '/path/to/client.cert'
OFFICE_WEB_APP_CLIENT_KEY = '/path/to/client.key'
上述路径必须是
Seafile 进程能够访问的文件路径
。使用 Docker 部署时,若证书文件仅存在于宿主机上,需要先将其挂载到 Seafile 容器中,再填写对应的容器内路径。
没有自定义 CA 或双向 TLS 认证需求时,无需添加上述配置项。
重启 Seafile
修改配置后需要重启 Seafile,使新配置生效。
Docker 部署
在 Docker Compose 配置文件所在目录(默认
/opt/seafile
)执行:
cd /opt/seafile
docker compose restart seafile
二进制包部署
使用运行 Seafile 的系统用户,在 Seafile 服务器目录执行:
cd /opt/seafile/seafile-server-latest
./seafile.sh restart
./seahub.sh restart
如果实际安装路径不同,请相应调整目录。
验证在线预览和编辑
重启服务后,在 Seafile 网页端打开已配置为使用 Office Online Server 预览的 Office 文件,确认能够显示预览页面,并根据需要测试编辑功能。
如果无法正常加载,可先尝试在浏览器中访问实际的 Office Online Server 发现接口地址,例如:
https://office.example.com/hosting/discovery
确认该地址可访问后,再检查 Seafile 与 Office Online Server 之间的网络连接。
故障排查
了解集成时的请求流程,有助于判断故障发生的位置:
-
Seahub → 浏览器 :Seahub 生成包含 iframe 的文件页面并返回浏览器。
-
浏览器 → Office Online Server :浏览器通过 iframe 加载 Office Online Server 的文件预览页面。
-
Office Online Server → Seahub :Office Online Server 向 Seahub 请求文件内容。
-
Office Online Server → 浏览器 :Office Online Server 将文件预览页面返回浏览器。
检查时可重点关注以下问题:
-
页面无法加载 :确认 OFFICE_WEB_APP_BASE_URL 正确,浏览器能够访问 Office Online Server,且 HTTPS 证书受信任。
-
无法获取文件内容 :确认 Office Online Server 可以访问 Seafile 的 Seahub 地址,检查 Seahub 所使用的反向代理日志以及 Office Online Server 日志。
-
预览正常但不能编辑 :检查 ENABLE_OFFICE_WEB_APP_EDIT 、 OFFICE_WEB_APP_EDIT_FILE_EXTENSION 和 Office Online Server 的编辑能力及权限配置。
-
HTTPS 连接异常 :检查 CA 证书、客户端证书及对应文件路径。Docker 部署时,应使用容器内可访问的路径。
Office Online Server 运行于 Windows 环境。请确保系统配置了足够的分页文件(paging file,建议至少预留数 GB),否则 IIS 工作进程在处理文档请求时可能意外终止。