kkfileView使用问题年终答疑篇
前言碎语
首先非常感谢社区同仁对kkfileview项目的关注,kkfileview开源一年多以来,收获了两千六百多个赞以及获得码云最有价值项目GVP,这离不开大家的贡献和关注。同时,kkfileview的设计模式,也被其他的类似项目所抄袭,这也从侧面说明了kkfileview存在的价值。但是开源容易,维护不易,在维护kk开源社区过程中也遇到了某些低素质人的恶语相向。但是我们并没有放弃,一直坚持做开源,从kkfileview之后也陆续开源了几个优秀的项目。由于公司事务原因,后面对kkfileview的问题关注的比较少,因为kkfileview的跨语言跨平台特性,使用人群比较广泛,以至于很多人在搭建环境过程中遇到了各种问题没有得到很好的解决,深感抱歉,这也直接导致kkfileview流失了一大部分的用户。正值年假将近腾出了点时间,正好可以好好捋一捋kkfileview的系列问题。
进入正题
问题一、kkfileview项目怎么部署?
kkfileview使用java语言,底层基于spring boot框架开发,spring boot是一个为微服务而生的底层框架,项目打成jar包后自带了web 容器,服务器部署时不需要额外的tomcat容器,只需要将jar包丢到某个目录,然后执行一下脚本即可
nohup java -Dspring.profiles.active=uat -jar /home/it/file-preview/jodconverter-web-1.5.8.RELEASE.jar > /home/it/file-preview/log/app.log &
其中spring.profiles.active代表配置文件是uat的。
问题二、kkfileview依赖的外部组件主要作用是什么?
kkfileview主要依赖openoffice或者liberoffice、以及redis。openoffice主要用来转换word系列的办公文档,使其能够被浏览器直接或间接渲染,如doc、ppt会转换成pdf;excel会被转换成html。redis这里有两个作用,一是用来存储已转换过文件的文件名,用来避免重复转换提供效率。二是用来充当分布式队列,解决并发预览和有些大的文件可以提前入队转换的问题。
问题三、文件预览乱码了有哪些原因呢?
很多人反馈,我在本地运行很好,部署到服务器上后就乱码了。其实文件预览乱码问题很简单,一般有两个原因,一个是编码问题,一个是字体问题。我们先说字体问题。一般的做法是将Windows下的字体拷贝到Linux服务器上,具体操作如下:
将Windows下的C:\Windows\Fonts 目录下的文件完整拷贝到Linux下的 /usr/share/fonts目录。然后依次执行mkfontscale 、mkfontdir 、fc-cache使字体生效。
编码问题的话是个老生常谈的问题。因为其受运行所在主机环境的影响不确定因素比较高,常规做法是,修改配置文件中如下配置,一般都是utf-8或者gbk。还不行,就在启动脚本里设置-Dfile.encoding=UTF-8试试
server.tomcat.uri-encoding = UTF-8
converted.file.charset = GBK
问题四、本地运行起来后报文件找不到异常?
一般遇到这个异常是因为你的文件目录地址配置错误了,如下文件目录配置:
file.dir = /Users/chenkailing/test/
注意目录最后是以/结尾的
问题五、项目启动时,报错Redission is shutdown
出现这个问题一般有两个原因,原因一、redis服务本身有问题、或者redis服务有密码认证,项目没有配置密码,遇到redis带有密码认证的可在配置文件中加入如下配置
spring.redisson.password = xxx
原因二、openoffice进程未关闭。kkfileview在启动时会自动开启openoffice的转换服务进程,所以在启动kkfileview前,需要保证openoffice进程是关闭的
问题六、kkfileview部署成功后怎么接入呢?
kkfileview从设计之初就充分考虑了微服务的使用场景,以http接口提供服务实现了跨语言跨系统跨服务。要使用kkfileview预览,首先这个文件要可访问,然后就访问地址作为参数传入kkfileview接口即可,如下:
https://localhost/onlinePreview?url=http://www.xx.com/meinv.png
url后面的参数就是你要预览的文件地址,当然为了url参数接收的正确性,文件地址需要被编码
问题七、http://file.keking.cn怎么访问不了?
我们的公共体验服务开放了近一年,开放服务能够最快速直观的体验kkfileview的预览功能,这为kkfileview项目带来了不少的用户。但是因为kkfileview和公司内部的业务系统部署在一起后面考虑到直接暴露服务带来的安全问题,所以就关闭了。这里呼吁如果有闲置服务器而且愿意提供帮助的欢迎联系我一起共建kkfileview。
问题八、相同的文件类型有的可以预览有的不可以?
这个是因为文件格式的兼容性问题,从两个类别的文件来聊聊这个问题。
一个是办公文档,微软的office一直在更新,当openoffice的更新没赶上office的功能时就会出现这种预览保报错的问题。最简单的鉴别方法就是直接使用openoffice打开是否有问题,能打开基本就能预览了。
一个压缩文件,压缩包不能预览很纯粹是因为压缩包格式的兼容性问题,压缩包的格式太多了,相同的zip格式压缩包也存在各种不同的压缩格式
问题九、kkfileview怎么集成到java项目?
一般有这个问题的是大概率是还没了解kkfileview的服务模式,kkfileview不需要集成到自己的项目里面,只要独立部署好kkfileview项目本身就可以对外提供文件预览服务了。具体可以参考问题六
文末结语
以上九个问题基本囊括了kkfileview使用过程中方方面面,希望此文能够帮助更多的kkfileview使用者以及将要使用kkfileview的所有同仁。再次感谢大家的关注与支持,同时也呼吁大家一起参与进来共建项目,给我们提更多的建议,让kkfileview走的更远更好。最后打个小广告,我们凯京在开源中国的官博成立了,欢迎关注我们,一起学习一起进步。
作者简介:
陈凯玲,2016年5月加入凯京科技。曾任职高级研发和项目经理,现任凯京科技研发中心架构&运维部负责人。pmp项目管理认证拥有者,阿里云认证最有价值专家MVP。热爱开源,先后开源过多个热门项目。
关于架构&运维部
凯京研发中心架构&运维部的工作主要分两大部分,架构部分主要负责框架中间件的研究,如dubbo、apollo、skywalking、xxljob、分布式事务等、公司内开源项目(https://gitee.com/kekingcn)以及公共服务公共组件的研发维护、新技术的引进以及落地等。运维部分主要负责devops系统研发以及k8s容器环境的维护等工作。
架构组招聘
目前架构组还有两个虚位以待,欢迎志同道合的你来和我们一起交流。简历可发送至邮箱:chenkailing@keking.cn

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
基于Tablestore的Wifi设备监管系统架构实现
Wifi设备监管 某知名跨国公司,在全球范围内拥有大量园区,园区内会有不同部门的同事在一起办公。每个园区内都要配备大量的Wifi设备从而为园区同事提供方便的上网服务。因此,集团需要一套完善的监管系统维护所有的Wifi设备。 公司通过监管系统维护Wifi设备属性、采集Wifi设备监控数据。当需要Wifi设备上、下线时,通过监管系统操作完成设备的添加、下线,同时可通过系统修改、增加设备属性信息,如:设备mac地址、设备型号、设备地理位置等。设备上线后,会定期向系统推送监控数据,从而完成设备监控数据的采集。采集数据包含:cpu、内存、连接数、Wan口流量与流速、2.4G与5G模块的信道数据等。 通过分析监控数据指标、分析设备运行状态,动态将问题设备的运行状态修改为:预警、报警。借助系统,网络部门可以快速获取问题设备列表、了解设备分布、查询历史监控指标。同时,也可以精确锁定老设备从而方便设备升级,或者为长期负载率较高的位置扩充Wifi设备提供数据依据; 功能需求 1、管理Wifi设备,通过系统上线新设备、下线老设备;2、系统拥有分组管理能力、标签检索能力;3、高并发海量监控数据采集能力;4、管...
- 下一篇
DDD领域驱动设计在凯京科技的应用实践(概念充电篇)
凯京科技成立已三周年,其技术架构经历从单体应用到微服务架构的升级,项目经历了从Spring到SpringBoot的改造,配置实现自动化,初步实现分布式,微服务,具备一定的容错能力,完成RPC框架 Dubbo的定制化改造。目前,凯京科技在领域驱动方面也在不断的探索和实践,将DDD与微服务有机结合来构建系统,从而做到系统的高内聚、低耦合。 1. 为什么选择DDD: 1)、与微服务架构相得益彰(微服务是要创建一个高内聚,低耦合的服务) 2)、DDD中的界限上下文则完美匹配微服务要求,可以将该界限上下文理解为一个微服务进程, 3)、微服务架构强调从业务维度去做分治来应对系统复杂度,DDD 也具有这样的业务视角。DDD与微服务架构图: 4)、DDD的核心诉求就是将业务架构映射到系统架构上,在响应业务变化调整业务架构时,也随之变化系统架构。 5)、微服务追求业务层的复用,设计出来的系统架构和业务一致,在技术架构上与系统模块之间充分解耦,可以自由地选择合适的技术架构。去中心化地治理技术和数据,DDD个人感觉也是高度抽象封装,将其功能独立化。 2. DDD中涉及到的相关概念 1)、实体:当一个对象由其...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS关闭SELinux安全模块
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Hadoop3单机部署,实现最简伪集群
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Docker安装Oracle12C,快速搭建Oracle学习环境