docker pull onlyoffice/documentserver
docker images
以下是将本机的9001端口映射到docker的80端口上,访问时通过服务器ip:9001访问,并且用 -v 将本机机==/data/aws_s3/file-storage==文件夹挂载到docker的 /var/www/onlyoffice/documentserver/web-apps/wsData文件下,后续直接通过http请求读取对应的文件夹
docker run -i -t -d -p 9001:80 -v /data/aws_s3/file-storage:/var/www/onlyoffice/documentserver/web-apps/wsData onlyoffice/documentserver
打开浏览器输入ip:9001,如下图根据自己需要执行测试和自启动命令:
出现以下页面就安装成功:
进入容器修改配置:
docker exec -it 容器ID bash
ONLYOFFICE Docs是一个开源办公套件,包括文本文档、电子表格和演示文稿的编辑器。它提供以下功能:
1、创建、编辑和查看文本文档、电子表格和演示文稿;
2、与其他队友实时协作处理文件;
3、ONLYOFFICE Docs 还支持用于将您的应用程序与在线办公室集成的WOPI 协议。
搭建安装onlyoffice,具体参考官网地址:
https://helpcenter.onlyoffice.com/installation/docs-developer-install-ubuntu.aspx?from=api_csharp_example
配置文档:ONLYOFFICE API 文档 - 基本概念
@GetMapping("/config/{fileId}")@ApiOperation("返回配置信息")public String getConfig(ModelMap map,@PathVariable String fileId){ //具体业务处理省略 //主要是获取一些信息,用于设置html中的脚本对象config上。 //4、设置视图数据:a、文件类型。b、用户信息。c、文件信息。 map.addAttribute("docType",documentType); map.addAttribute("user",user); map.addAttribute("fileManager",fileManager); //将html页面返回回去 return "onlineEdit";}
@PostMapping("/saveFile/{fileId}/{fileCode}")@ApiOperation("在线编辑保存回调接口")@ResponseBodypublic void saveFile(HttpServletRequest request , HttpServletResponse response, @PathVariable String fileId, @PathVariable String fileCode) throws IOException { PrintWriter writer = response.getWriter(); Scanner scanner = new Scanner(request.getInputStream()).useDelimiter("\\A"); String body = scanner.hasNext() ? scanner.next() : ""; JSONObject jsonObject = JSONObject.parseObject(body); System.out.println(jsonObject); //status等于2时表示已经准备好保存 if((Integer) jsonObject.get("status") == 2){ //2、根据返回的Url去下载文件 URL url = new URL((String) jsonObject.get("url")); java.net.HttpURLConnection connection = (java.net.HttpURLConnection) url.openConnection(); InputStream stream = connection.getInputStream(); //此处获取到的流即是onlyoffice服务下的文件流。 //3、重新上传业务省略 connection.disconnect(); } writer.write("{"error":0}"); }
在线编辑文档
更加具体的config对象和回调处理接口内容参考官网:
https://api.onlyoffice.com/editors/getdocs
当我调用config接口时,打开不同类型的文件,展示返回html页面如下。
1、要使用onlyoffice去在线编辑不难,主要是掌握config的配置。
2、它的一个工作流程:当我打开在线编辑时,接口设置数据返回html页面,并将数据拼接到config上。接着页面会根据config的url地址去下载源文件,最后将内容展示到html上。最后当我们修改完毕关闭了窗口时,会调用callbackurl的接口进行文件保存。
同类产品官网,贴在下面如果大家有好的使用方法可以分享下:
onlyoffice官网:https://www.onlyoffice.com/
Api官方地址(英文):https://api.onlyoffice.com/editors/basic
Api中文地址(中文):https://www.onlyoffice.org.cn/guide/usage-mode.html
OpenOffice官网:https://www.openoffice.org
LibreOffice官网:https://www.libreoffice.org
参考链接:链接1,链接(原理)2,链接3
如果本篇文章对你有帮助的话,很高兴能够帮助上你。
当然,如果你觉得文章有什么让你觉得不合理、或者有更简单的实现方法又或者有理解不来的地方,希望你在看到之后能够在评论里指出来,我会在看到之后尽快的回复你。
分享让更多人看到