onlyoffice集成过程中遇到的坑和常见问题

最近需要集成onlyoffice,大致看了一下,非常简单(不要轻易立flag)。但在实际集成过程中遇到了各种各样的问题。

一、容器部署

docker-compose.yml如下:

version: '3.3'
services:
    onlyoffice:
        image: onlyoffice/documentserver:8.1
        container_name: onlyoffice
        volumes:
            - ./cpfile/header-logo_s.svg:/var/www/onlyoffice/documentserver/web-apps/apps/common/main/resources/img/header/header-logo_s.svg
            - ./onlyoffice/log:/var/log/onlyoffice
            - ./onlyoffice/data:/var/www/onlyoffice/Data
            - ./onlyoffice/lib:/var/lib/onlyoffice
            - ./onlyoffice/db:/var/lib/postgresql
        ports:
            - 8793:80
        environment:
            - JWT_ENABLED="false"
        restart: always

volumes第一条- ./cpfile/header-logo_s.svg:/var/www/onlyoffice/documentserver/web-apps/apps/common/main/resources/img/header/header-logo_s.svg,是为了修改onlyoffice编辑器左上角的LOGO,自己根据LOGO的大小设计一个svg图标即可,图标尺寸:354*83

然后访问http://192.168.2.2:8793 显示如下图时说明onlyoffice服务端部署成功。

二、容器构建前端

官方给提供了各种语言的DEMO,还是很贴心的,地址:Language-specific examples - ONLYOFFICE Api Documentation 

我使用了较为熟悉的nodejs,可以根据官方的说明,下载nodejs源代码进行部署,我用了容器,所以先构建Dockfile:

# 使用官方 Node.js 镜像作为基础镜像
FROM node:latest

# 设置工作目录
WORKDIR /work

# 将项目文件复制到容器中
COPY ./cpfile/app .

# 将npm源设置为淘宝镜像
RUN npm config set registry https://registry.npmmirror.com/

# 安装项目依赖
RUN npm install

# 暴露端口
EXPOSE 3000

# 启动应用
CMD ["node", "bin/www"]

构建docker-compose.yml:

version: '3'
services:
  onlyoffice-doc:
    container_name: onlyoffice-doc

    build:
      context: .

    restart: always

    volumes:
      - ./cpfile/app/config/default.json:/work/config/default.json
      - /opt/data/:/work/files

    networks:
      - general

    ports:
      - "9903:3000"

networks:
  general:
    external: true

注意volumes的/opt/data/:/work/files,目的是把宿主机的/opt/data/目录映射到容器的/work/files路径,这样创建的文档就会保存在宿主机,避免文档丢失。

然后下载官方给的nodejs源码,放在cpfile/app/目录下。

修改/cpfile/app/config/default.json,将"siteUrl"改为onlyoffice服务端地址: "http://192.168.2.2:8793/"

然后启动容器,通过9903端口进行访问即可,这是官方给的demo,内置了一个demo用户系统,如果想完美集成到自己的系统中,难度还是不小的,最后对官方的node代码一顿魔改,实现了通过token进行用户数据互通。

常见错误一:打开文档时提示下载失败

onlyoffice在创建文档的时候,会复制一个空白文档到指定的文件存储目录下,提示下载失败,大概率是文件夹没有写入权限导致的。

具体可进入容器,然后cd /var/log/onlyoffice/documentserver,查看各文件夹下的out.log日志文件来定位错误。

错误二:The document security token is not correctly formed

新版Onlyoffice的(JWT_ENABLED) 现在设置默认为 true。因此,解决方案是以“JWT_ENABLED=false”启动onlyoffice。所以onlyoffice的docker-compose.yml中我加了environment:- JWT_ENABLED="false"

错误三:提示:这份文件无法保存。请检查连接设置或联系你的管理员。当你点击ok按钮,系统将提示你下载文档。

经过对onlyoffice的开发不断增加对onlyoffice的理解也更多了。这个问题的主要原因是onlyoffice服务端无法调用我们传给onlyoffice服务器的回调地址或是我们传的回调接口返回的值是onlyoffice服务端无法识别的。如文档中要求接口返回{\"error\":0}表示回调成功。结果我们的接口没有返回或返回的值不是{\"error\":0},这时onlyoffice服务端就是认为接口无法保存文档,这时这个提示就出来了。

错误四:下载文档空白

不知道大家有没有发现,当编辑完文档,然后关闭页面时,如果点击下载文档按钮,那么文档的内容可能会显示空白,或者文档的内容没有更新,仍然保持上次编辑时的内容,但如果点击在线编辑,却发现文档内容实际上已经变了。最后发现,当文档关闭后,word文档并没有实时的更新内容,需等待3-5秒,再下载文档时,才会正常。

而且发现,文档在线编辑过程中,word文件不会保存数据,只有在线编辑网页关闭3-4秒后,内容才会被写入word文件。

错误五:OnlyOffice前端界面出现“下载失败”

如果发现日志文件中存在:Error: DNS lookup xxx.xxx.xxx.xx(family:undefined, host:undefined) is not allowed. Because, It is private IP address.那么需要编辑配置文件允许私有ip通过:

编辑docker中/etc/onlyoffice/documentserver/default.json​下的内容

"request-filtering-agent" : {
        "allowPrivateIPAddress": true,
        "allowMetaIPAddress": true
},

参考:

onlyoffice修改左上角的logo - 微雨洛辰 - 博客园 (cnblogs.com)

Docker安装OnlyOffice-CSDN博客

使用docker部署onlyoffice插件步骤及踩坑问题(win10/linux)_docker onlyoffice-CSDN博客

OnlyOffice 打开文档时提示下载失败 - 浪淘沙& - 博客园 (cnblogs.com)

[错误]文档安全令牌格式不正确 ·期刊 #516 ·米凯尔-克让/Filestash (github.com)

onlyoffice报 error self signed certificate导致download failed错误处理_onlyoffice download failed-CSDN博客

onlyoffice8.1.0基础环境搭建+部署+demo可直接运行【在线试用】 最简单的入门_onlyoffice部署-CSDN博客 简单使用HTML集成OnlyOffice_onlyoffice_一个需求_InfoQ写作社区

ONLYOFFICE8.0部署集成(vue+java)_vue3集成onlyoffice-CSDN博客

onlyoffice 开发问题整理. 提示:这份文件无法保存。请检查连接设置或联系你的管理员。当你点击ok按钮,系统将提示你下载文档。_这份文件无法保存 onlyoffice-CSDN博客

使用Docker部署Node.js_docker nodejs-CSDN博客

docker onlyoffice 7.2.2-版本logo修改_mob64ca12ef217e的技术博客_51CTO博客

【onlyoffice】关于文件转换之后无法从api访问转换后的文件的问题_onlyoffice 403-CSDN博客

  • 19
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值