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


官网地址: https://ibisheng.cn/
主要的特点:

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

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

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

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

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

下载文件脚本:https://gitee.com/ibisheng/deploy/tree/offline/

这个脚本是安装毕升系统的关键,全程自动化安装主要依赖这个脚本

下载主要的系统文件

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


出现了这些镜像文件说明导入成功

安装系统

在安装之前需要解压上文中下载的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

控制台入口

手动离线激活

  1. 点击离线激活之后,进入到离线激活的页面,点击蓝色字"点击激活"
  2. 当点击这个链接之后,会打开一个毕升的文档的激活页面,在页面中填写相关信息之后,点击激活。在激活成功之后会得到一个毕升系统生成的激活码。


3. 激活成功之后,在页面的下方会生成激活码,拷贝这些激活码


4. 回到你部署的毕升Office控制台激活页面,点击离线激活页面中的激活按钮

5. 点击激活之后,在输入框填入上一步拷贝字符串,然后点击确定,完成计划

6. 完成激活系统之后可以在许可信息页面看到

激活生效方式:

激活完成之后需要重启毕升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

集成过程的流程图

集成方需注意:

实现一个获取编辑/预览文档的信息的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  #默认为falsesecuritycookie: true #默认为false

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

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

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

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

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

  1. 文件在线预览功能(office文件)

    由于项目的功能需要看了一下文件预览的功能实现,主要是看office的word,excel,ppt这些的在线预览. 比较常见的是以下两种: 一.通过iframe直接引用微软提供的方法(最简单) < ...

  2. java将office文档,word,ppt,pdf文档转换成swf文件在线预览

    java将office文档pdf文档转换成swf文件在线预览 第一步,安装openoffice.org openoffice.org是一套sun的开源office办公套件,能在widows,linux ...

  3. 快速实现word、excel、ppt、txt等办公文件在线预览功能(Java版)

    点击关注公众号,实用技术文章及时了解 来源:blog.csdn.net/weixin_40986713/ article/details/109527294 java实现办公文件在线预览功能是一个大家 ...

  4. Java 实现word、excel、ppt、txt等办公文件在线预览功能!

    大家好,我是宝哥! 如何用 Java 实现word.excel.ppt.txt等办公文件在线预览功能?本文告诉你答案! java 实现办公文件在线预览功能是一个大家在工作中也许会遇到的需求,网上些公司 ...

  5. 手把手教你用 Java 实现word、excel、ppt、txt等办公文件在线预览功能!

    如何用 Java 实现word.excel.ppt.txt等办公文件在线预览功能?本文告诉你答案! java 实现办公文件在线预览功能是一个大家在工作中也许会遇到的需求,网上些公司专门提供这样的服务, ...

  6. word、excel、ppt 办公文件 在线预览

    如果想要免费的,可以用 openoffice,实现原理就是: 通过第三方工具openoffice,将word.excel.ppt.txt等文件转换为pdf文件流:当然如果装了Adobe Reader ...

  7. kkfileview v2.0 发布,文件在线预览项目方案

    kkfileview文件在线预览 此项目为文件文档在线预览项目解决方案,项目使用流行的spring boot搭建,易上手和部署,部署好后可以独立提供预览服务,使用http接口访问,不需要和应用集成,具 ...

  8. doc文件在线预览 vue_跨平台(uniapp)文件在线预览解决方案

    一.前言 之前写过一篇文章关于上传目录文件:uni-app系统目录文件上传(非只图片和视频)解决方案,这次来解决文件预览问题. uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者 ...

  9. 跨平台(uni-app)文件在线预览解决方案

    1024刚过,也祝愿各位码友在今后生活中,身体健康,事事顺心,再无Bug. 一.前言 之前写过一篇文章关于上传目录文件:uni-app系统目录文件上传(非只图片和视频)解决方案,这次来解决文件预览问题 ...

最新文章

  1. 我眼中未来的计算机作文600字,我的电脑作文600字
  2. BlackArch Linux安装VMware Tools教程
  3. 速达服务器账套定期维护么,速达软件常见操作问题解决方法
  4. [转载]ubuntu 12.10 软件源更新列表
  5. php 递归实现无限极分类和排序_PHP实现选择排序
  6. C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 员工离职管理
  7. java中将数字颠倒的工具类,java开发中常用的数字工具类
  8. iOS开发者联系 联系方式
  9. Windows Mobile 6.1开发笔记
  10. python环境精简版_【Python专题(一)】Python环境搭建
  11. 掌握 需求过程阅读笔记02
  12. 微软称暂时无意起诉抄袭XP界面的雨林木风
  13. Python数据分析师使用低代码Streamlit实现Web数据可视化方法——Plotly可视化基础篇
  14. html中的==$0是什么意思
  15. 巨蟹座---永远的伤
  16. Java 本地接口(JNI)编程指南和规范学习笔记2
  17. 物联网平台技术架构和应用场景
  18. 【干货】超强整理19个辅助制作H5的工具/网站
  19. qt项目移植报的错误和解决方法
  20. Flash Play无法安装的解决办法

热门文章

  1. mysql表与表之间常见的映射关系_数据库表关联关系的基础知识
  2. layui laydate设置最小时间为当前时间,不能选择今天之前的时间
  3. Idea项目设置默认JDK版本
  4. 直播平台中的美颜SDK技术探究
  5. C# 管道通信-命名管道(一)
  6. 基于CNN的手写体识别与GUI系统设计(新手快进来!)
  7. GBase 8a MPP Cluster GDCA 认证培训课前准备
  8. SAP FPM通过ABAP读取EXCEL值到动态内表并把数据发送到其他组件
  9. 华为Mate 10系列升级EMUI 9.0智慧系统,带来四重安全保障
  10. 可以一键生成crud的php框架,一键生成CRUD - FastAdmin框架文档 - FastAdmin开发文档