文件在线预览(免费)--毕升office系统

文件在线预览(免费)–毕升office系统

文件在线预览(免费)--毕升office系统_第1张图片
官网地址: https://ibisheng.cn/
主要的特点:

  1. 小微企业以及小型团队(最大20连接)一键部署,免费使用。
  2. 政企客户离线,多结点部署,满足安全和扩容的要求。
  3. 支持流水线部署,客户可以根据自己自动化部署系统的要求,自行构建镜像。

部署方式:
支持联网部署和内网部署

这里需要提一下,如果是免费试用,毕升的系统激活机制是三个月一次,也就是说,你必须三个月一个周期去手动激活系统,才能正常试用;

部署
内网部署:这里主要说内网部署
注意事项:

  • 服务配置建议使用4核8G服务器进行安装部署。最低配置cpu不应该低于2核,内存4G。系统预留硬盘不低于40G,并根据用户实际情况预留更多硬盘空间。安装过程建议使用root权限。
  • 服务器上需要预先安装 unzip命令行工具

下载文件脚本:https://gitee.com/ibisheng/deploy/tree/offline/
文件在线预览(免费)--毕升office系统_第2张图片
这个脚本是安装毕升系统的关键,全程自动化安装主要依赖这个脚本

下载主要的系统文件

https://bisheng-public.nodoc.cn/resource/docker/docker_x86_64.zip
https://bisheng-public.oss-cn-zhangjiakou.aliyuncs.com/resource/release/worker_v3.tar.gz
https://bisheng-public.oss-cn-zhangjiakou.aliyuncs.com/resource/docker/service.tar.gz

在浏览器直接访问上面的地址,自动下载文件;

安装系统:
由于毕升的系统是基于docker服务的,所以我们需要安装docker服务

安装docker以及docker-compse

如果服务器有docker或者docker-compose可以忽略。如果你系统中docker版本低于18,为了安装顺利,请升级docker版本

按照如下命令在系统中安装docker以及docker-compose

unzip docker_x86_64.zip
cd docker_x86_64
sudo bash install.sh docker-19.03.1.tgz #注意是以root权限安装

安装完之后请检查是否成功

docker -v
docker-compose -v

导入镜像

在worker.tar.gz 以及 service.tar.gz 这两个文件中包含了毕升office所需要的镜像

命令如下:

docker load < service.tar.gz
docker load < workder.tar.gz

查看是否导入成功:

docker images

文件在线预览(免费)--毕升office系统_第3张图片
出现了这些镜像文件说明导入成功

安装系统

在安装之前需要解压上文中下载的deploy.zip文件,然后再执行安装

安装命令如下:

unzip deploy.zip
cd deploy
bash install.sh /bisheng_data #安装系统的目录

注意:安装目录的结尾不要斜杠‘/’,否则安装目录最好拼接会出错。即上面脚本 "/bisheng_data"不要写成“/bisheng_data/”,另外需要强调的是,不要使用有数据的目录作为安装目录,因为初次安装过程 中会清空该目录,该安装命令需要一个参数来指定安装目录,该目录是毕升Office的工作目录,所以的数据都会保存在该目录,需要保证该目录所有在的存储设备上有较大的空间,如果安装过程中出现类似无法解析IP/域名,或者是网络连接超时到错误,可以忽略。因为这是在试图去互联网上下载最新的镜像。或者可以将pullImages.sh中docker pull的命令注释

[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE                                                        COMMAND                  CREATED             STATUS                   PORTS                                                  NAMES
2814b1a885de        registry.cn-zhangjiakou.aliyuncs.com/bisheng/nginx:1.20.1    "/bin/sh -c /usr/loc…"   3 weeks ago         Up 3 weeks               0.0.0.0:443->443/tcp, 80/tcp, 0.0.0.0:80->80/tcp   nginx
73411c2fe377        registry.cn-zhangjiakou.aliyuncs.com/bisheng/drive_full:v3   "/bin/sh -c /bisheng…"   3 weeks ago         Up 3 weeks               3000/tcp                                               drive_full
a582c4f82c21        registry.cn-zhangjiakou.aliyuncs.com/bisheng/editor:v3       "docker-entrypoint.s…"   3 weeks ago         Up 3 weeks               18000/tcp                                              editor
bf897564a3a1        registry.cn-zhangjiakou.aliyuncs.com/bisheng/convert:v3      "docker-entrypoint.s…"   3 weeks ago         Up 3 weeks               5000/tcp                                               convert
8b95b5f1edc5        registry.cn-zhangjiakou.aliyuncs.com/bisheng/editor_app:v3   "docker-entrypoint.s…"   3 weeks ago         Up 3 weeks               5500/tcp                                               editor_app
7dd7db3e258e        registry.cn-zhangjiakou.aliyuncs.com/bisheng/minio:latest    "/usr/bin/docker-ent…"   3 weeks ago         Up 3 weeks (healthy)     9000/tcp                                               minio
b1c0c4c1867b        registry.cn-zhangjiakou.aliyuncs.com/bisheng/dgraph:v1.0.5   "dgraph-ratel"           3 weeks ago         Up 3 weeks               8080/tcp, 9080/tcp                                     dgraphRatel
ca4b05c8b78a        registry.cn-zhangjiakou.aliyuncs.com/bisheng/redis:4.0       "docker-entrypoint.s…"   3 weeks ago         Up 3 weeks               6379/tcp                                               redis
961c2827a82f        registry.cn-zhangjiakou.aliyuncs.com/bisheng/mongo:3.6       "docker-entrypoint.s…"   3 weeks ago         Up 3 weeks               27017/tcp                                              mongod
003d4d17df5c        registry.cn-zhangjiakou.aliyuncs.com/bisheng/dgraph:v1.0.5   "dgraph zero --my=dg…"   3 weeks ago         Up 3 weeks               8080/tcp, 9080/tcp                                     dgraphZero
acb4601e5a16        registry.cn-zhangjiakou.aliyuncs.com/bisheng/dgraph:v1.0.5   "dgraph server --whi…"   3 weeks ago         Up 3 weeks               8080/tcp, 9080/tcp                                     dgraphServer

看到这些容器已经启动就说明安装成功

激活系统

毕升office免费版一次激活,之后每三个月将需要更新一次许可。在联网请求下可以制动更新许可,在不能连接外网的内网中,需要手动更新许可。

在激活前,需要登陆到系统控制台,系统控制台地址为:/apps/console;内置管理员用户名是:admin;内置默认密码是:bisheng

控制台入口
文件在线预览(免费)--毕升office系统_第4张图片
手动离线激活

  1. 点击离线激活之后,进入到离线激活的页面,点击蓝色字"点击激活"
    文件在线预览(免费)--毕升office系统_第5张图片
  2. 当点击这个链接之后,会打开一个毕升的文档的激活页面,在页面中填写相关信息之后,点击激活。在激活成功之后会得到一个毕升系统生成的激活码。

文件在线预览(免费)--毕升office系统_第6张图片
3. 激活成功之后,在页面的下方会生成激活码,拷贝这些激活码

文件在线预览(免费)--毕升office系统_第7张图片
4. 回到你部署的毕升Office控制台激活页面,点击离线激活页面中的激活按钮
文件在线预览(免费)--毕升office系统_第8张图片
5. 点击激活之后,在输入框填入上一步拷贝字符串,然后点击确定,完成计划
文件在线预览(免费)--毕升office系统_第9张图片
6. 完成激活系统之后可以在许可信息页面看到
文件在线预览(免费)--毕升office系统_第10张图片
激活生效方式:

激活完成之后需要重启毕升Office,运行upNode.sh即可

sh upNodes.sh

完成以上步骤之后,即可开始使用毕升Office
接下来你可以通过地址:http://毕升ip

使用说明:
上面说完了安装,接下来就是使用了;
集成时需传入的数据

在调用毕升office时需要传入需要编辑或者预览的文档的相关信息以及当前编辑或者预览文档的用户的信息两项必须的基础数据。毕升office在收到这些数据时,将根据文档信息来处理文档,并且根据用户信息来初始化编辑器的相关信息。除基础数据之外,也可以根据集成的需要传入其他相关数据来实现相关功能:例如实现文档打印,下载的权限控制,以及对编辑行为的相关控制(例如控制word局部编辑,控制word进入修订模式等)。这些数据的基本格式如下:

{
    doc: {
       docId: "",
       title: "",
       fetchUrl: "",
    },
    user: {
       uid: "",
       nickName: "",
       avatar: ""
     },
}

参数说明:

参数中doc部分为需要毕升office系统处理的文件的信息,各个字段具体意义如下:
docId: 为文件的唯一标示,同时也应该是该文件在调用毕升的业务系统中的标示;
title: 是文件的名称,注意必须保护文件扩展名(例如doc,docx,xls,xlsx,ppt,pptx)以识别文件类型;
fetchUrl: 为该文件可以下载的地址,毕升office系统将访问该地址去下载文件到毕升服务器上,然后进行后续的处理

调用方法

毕升office进行文件预览的的方法为在浏览器中打开类似下面的地址:
http://bisheng_host/apps/editor/openPreview?data=XXX
毕升office进行文件编辑的的方法为在浏览器中打开类似下面的地址:
http://bisheng_host/apps/editor/openEditor?data=XXX
其中bisheng_host为毕升office服务所在的地址。data的值为上文中提到的所需的json数据进过如下两步处理得到的字符串:
将需要传入的json数据经过序列化得到序列话后的字符串(例如js中利用的JSON.stringfy函数对数据进行序列化)
然后将第一步中得到的数据 进行进行base64编码得到最后的的值。

例如:编辑/预览一个文件时的相关参数如下:

{
    doc: {
       docId: "bishengofficeDoxTest",
       title: "毕升Office测试.docx",
       fetchUrl: "https://bisheng-public.nodoc.cn/sample/%E6%AF%95%E5%8D%87office%E6%B5%8B%E8%AF%95%E6%96%87%E6%A1%A3.docx"
    },
    user: {
       uid: "admin",
       nickName: "管理员",
       avatar: "https://bisheng-upload.nodoc.cn/system/defaultAvatar.png"
     },
}

将该JSON参数进行字符串序列号(JSON.stringfy)得到第一步的编码的参数
例如:将上一步的json对象序列化得到如下字符串:

{"doc":{"docId":"bishengofficeDoxTest","title":"毕升Office测试.docx","fetchUrl":"https://bisheng-public.nodoc.cn/sample/%E6%AF%95%E5%8D%87office%E6%B5%8B%E8%AF%95%E6%96%87%E6%A1%A3.docx"},"user":{"uid":"admin","nickName":"管理员","avatar":"https://bisheng-upload.nodoc.cn/system/defaultAvatar.png"}}

将上一步序列化的参数进行base64编码
例如:将上一步的字符串base64编码之后得到如下:

eyJkb2MiOnsiZG9jSWQiOiJiaXNoZW5nb2ZmaWNlRG94VGVzdCIsInRpdGxlIjoi5q+V5Y2HT2ZmaWNl5rWL6K+VLmRvY3giLCJmZXRjaFVybCI6Imh0dHBzOi8vYmlzaGVuZy1wdWJsaWMubm9kb2MuY24vc2FtcGxlLyVFNiVBRiU5NSVFNSU4RCU4N29mZmljZSVFNiVCNSU4QiVFOCVBRiU5NSVFNiU5NiU4NyVFNiVBMSVBMy5kb2N4In0sInVzZXIiOnsidWlkIjoiYWRtaW4iLCJuaWNrTmFtZSI6IueuoeeQhuWRmCIsImF2YXRhciI6Imh0dHBzOi8vYmlzaGVuZy11cGxvYWQubm9kb2MuY24vc3lzdGVtL2RlZmF1bHRBdmF0YXIucG5nIn19

因此预览该文件的地址为:

http://bisheng_host/apps/editor/openPreview?data=eyJkb2MiOnsiZG9jSWQiOiJiaXNoZW5nb2ZmaWNlRG94VGVzdCIsInRpdGxlIjoi5q+V5Y2HT2ZmaWNl5rWL6K+VLmRvY3giLCJmZXRjaFVybCI6Imh0dHBzOi8vYmlzaGVuZy1wdWJsaWMubm9kb2MuY24vc2FtcGxlLyVFNiVBRiU5NSVFNSU4RCU4N29mZmljZSVFNiVCNSU4QiVFOCVBRiU5NSVFNiU5NiU4NyVFNiVBMSVBMy5kb2N4In0sInVzZXIiOnsidWlkIjoiYWRtaW4iLCJuaWNrTmFtZSI6IueuoeeQhuWRmCIsImF2YXRhciI6Imh0dHBzOi8vYmlzaGVuZy11cGxvYWQubm9kb2MuY24vc3lzdGVtL2RlZmF1bHRBdmF0YXIucG5nIn19

服务端集成的说明:
上面的预览方式比较简单,但是存在一定的安全隐患,下面说一下毕升提供的另一种实现方式:

该方法的基本过程是,在预览/编辑文档的地址中使用callURL来传递一个可以请求相关参数的地址(需base64编码),
然后毕升系统的服务端会对callURL参数值进行解码处理,并且使用该地址发送一个http Get请求,相关服务端在收到该请求后,将处理文档的参数进行base64编码,然后返回到毕升系统服务端。在毕升服务端收到该数据后,完成相应的处理。
例如:如果参数编码值为XXX,则调用毕升系统预览该文件和编辑该文件的地址如下:

预览文件的URL:http://bisheng_host/apps/editor/openPreview?callURL=XXX

集成过程的流程图
文件在线预览(免费)--毕升office系统_第11张图片
集成方需注意:

实现一个获取编辑/预览文档的信息的http get 请求。
该请求返回的数据格式为毕升office集成是所需数据,该部分参考:
必须参数
请求地址作为callURL参数值前,需要进行base64编码。

cookie机制:
cookie samesite 相关策略

Google Chrome浏览器在高版本(现在观察80以上版本)修改了隐私策略,会导致iframe中的cookie可能出现如下问题:
来自服务器的cookie无法写入
iframe中的发送的网络请求无法将已有cookie带到服务端去。
以上两个结果会导致在iframe集成毕升office之后,服务器无法正常项客户端写入cookie,同时客户端也无法将cookie带到服务器端。因此在这种情况下无法通过cookie来完成鉴权。毕升offic服务的 URL,以及网络连接url中将会自动增加一个sid参数。该参数的作用是在cookie策略失败之后鉴权备选参数,默认情况下用户不需要做额外处理。
如不希望URL地址中出现sid参数,取消URL中的sid作为鉴权备用方案,可以在配置文件中添加配置,并仔细阅读下文提示:

security:
  disablesidarg: true  #默认为false
  securitycookie: true #默认为false

disablesidarg参数项为true将禁止在URL中添加sid参数。但是此时请确保至少满足如下其中一条:

  • 毕升office域名和office域名在同一域名下,或者office域名为用户服务域名的子域名,
  • 或者用户office配置了https,并且开启securitycookie为true以保证cookie是安全写入。

建议部署使用https,并且按照上面的配置开启相关配置。

转载地址:https://wiki.bishengoffice.com/

你可能感兴趣的:(linux系统相关,三方系统使用,docker,容器,运维)