kk服务器地址和端口,kk6.0服务器端口怎么填

首页 > 实用技巧 > 作者:YD1662024-01-26 06:18:52

项目简介

此项目为文件文档在线预览项目解决方案,对标业内付费产品有【永中office】【office365】【idocv】等。该项目使用流行的spring boot搭建,易上手和部署,基本支持主流办公文档的在线预览,如doc,docx,Excel,pdf,txt,zip,rar,图片等等。

项目特性部署指南1. 环境要求
  1. Java: 1.8
  2. maven:3.4
2. 下载代码&编译打包2.1. 从码云仓库拉取代码

git clone https://gitee.com/kekingcn/file-online-preview.git 2.2. 使用maven编译打包

cd file-online-preview mvn clean package -DskipTests 2.3. 使用docker构建镜像

docker build -t keking/kkfileview:v4.0.0 .Docker容器环境环境运行

docker pull keking/kkfileview

docker run -it -p 8012:8012 keking/kkfileview

3. 项目接入使用3.1.普通文件下载url预览3.x.x 及以上版本

<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/js-base64@3.6.0/base64.min.js"></script> var url = 'http://127.0.0.1:8080/File/test.txt'; //要预览文件的访问地址 window.open('http://127.0.0.1:8012/onlinePreview?url=' encodeURIComponent(Base64.encode(previewUrl))); 2.x.x 及以下版本

var url = 'http://127.0.0.1:8080/file/test.txt'; //要预览文件的访问地址 window.open('http://127.0.0.1:8012/onlinePreview?url=' encodeURIComponent(previewUrl));3.2. http/https下载流url预览

很多系统内不是直接暴露文件下载地址,而是请求通过id、code等参数到通过统一的接口,后端通过id或code等参数定位文件,再通过OutputStream输出下载,此时下载url是不带文件后缀名的,预览时需要拿到文件名,传一个参数fullfilename=xxx.xxx来指定文件名,示例如下

3.x.x 版本

<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/js-base64@3.6.0/base64.min.js"></script> var originUrl = 'http://127.0.0.1:8080/filedownload?fileId=1'; //要预览文件的访问地址 var previewUrl = originUrl '&fullfilename=test.txt' window.open('http://127.0.0.1:8012/onlinePreview?url=' encodeURIComponent(Base64.encode(previewUrl))); 2.x.x 及以下版本

var originUrl = 'http://127.0.0.1:8080/filedownload?fileId=1'; //要预览文件的访问地址 var previewUrl = originUrl '&fullfilename=test.txt' window.open('http://127.0.0.1:8012/onlinePreview?url=' encodeURIComponent(previewUrl));3.3. FTP下载url预览1). FTP匿名访问

如果要预览的FTP url是可以匿名访问的(不需要用户名密码),则可以直接通过下载url预览,示例如下

3.x.x 版本

<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/js-base64@3.6.0/base64.min.js"></script> var url = 'ftp://127.0.0.1/file/test.txt'; //要预览文件的访问地址 window.open('http://127.0.0.1:8012/onlinePreview?url=' encodeURIComponent(Base64.encode(url))); 2.x.x 及以下版本

var url = 'ftp://127.0.0.1/file/test.txt'; //要预览文件的访问地址 window.open('http://127.0.0.1:8012/onlinePreview?url=' encodeURIComponent(url)); 2). 非匿名访问,确定只有访问一台FTP服务器

如果预览服务只访问一台FTP服务器,只需要在配置文件中 配置FTP链接信息 ,则可以直接通过下载url预览,示例如下

3.x.x 版本

<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/js-base64@3.6.0/base64.min.js"></script> var url = 'ftp://127.0.0.1/file/test.txt'; //要预览文件的访问地址 window.open('http://127.0.0.1:8012/onlinePreview?url=' encodeURIComponent(Base64.encode(url))); 2.x.x 及以下版本

var url = 'ftp://127.0.0.1/file/test.txt'; //要预览文件的访问地址 window.open('http://127.0.0.1:8012/onlinePreview?url=' encodeURIComponent(url)); 3). 非匿名访问,不只访问一台FTP服务器

如果预览服务要访问多台FTP服务器,且用户名密码不一致,可以通过在url中加入用户名密码等参数预览(url参数中的优化于配置文件中的),示例如下

3.x.x 版本

<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/js-base64@3.6.0/base64.min.js"></script> var originUrl = 'ftp://127.0.0.1/file/test.txt'; //要预览文件的访问地址 var previewUrl = originUrl '?ftp.username=xx&ftp.password=xx&ftp.control.encoding=xx'; window.open('http://127.0.0.1:8012/onlinePreview?url=' encodeURIComponent(Base64.encode(previewUrl))); 2.x.x 及以下版本

var originUrl = 'ftp://127.0.0.1/file/test.txt'; //要预览文件的访问地址 var previewUrl = originUrl '?ftp.username=xx&ftp.password=xx&ftp.control.encoding=xx'; window.open('http://127.0.0.1:8012/onlinePreview?url=' encodeURIComponent(previewUrl));配置说明

打开conf目录,下面有一个application.properties配置文件,有部分配置是可以在程序运行中变更的,其他的变更需要重新启动程序

不可动态配置,需要重启生效部分server.context-path

说明:kkFileView运行时tomcat的ServletContext 默认值:/ 示例:server.context-path = /preview

file.dir

说明:预览文件存储路径,当有大量文件要预览时需要保证该目录所在磁盘有足够的容量
默认值:程序根目录下的file目录下
示例:file.dir = D:\\kkFileview\\

office.home

说明:openoffice或libreoffice安装目录,一般情况下不用配置,如果需要使用自己安装openoffice或libreoffice,可以自行指定
默认值:不同操作系统各自对应的默认安装目录
示例:office.home = C:\\Program Files (x86)\\openoffice 4

cache.type

说明:缓存实现方式,默认为内嵌RocksDB实现,可选项:'default', 'jdk', 'redis'

当配置为redis实现时,需要同时配置redis连接相关配置,如下:

spring.redisson.address = 127.0.0.1:6379 spring.redisson.password = xxxxxx cache.clean

说明:是否需要自动定时清理缓存及预览过的文件,默认开启(如果不清理缓存,同一个url下如果文件发生变更是不会重新拉取新的文件再去预览的),开启的情况下会在每天凌晨3点清理所有缓存及预览文件,推荐预览量不大,对预览速度要求不高,且同一url下文件经常更新的用户开启,预览量大、预览速度要求高的用户不推荐开启

可在运行时动态改变部分base.url

说明:提供预览服务的地址,默认从接收请求url读,如果使用nginx等反向代理,需要手动设置为通过nginx访问预览服务的地址
默认值:未设置
示例:base.url = https://file.keking.cn/preview
例如nginx的访问地址为 https://file.keking.cn 想要使用 https://file.keking.cn/preview/来做预览,kkFileView部署在内网192.168.1.233服务器上,需要在nginx中添加反向代理如下

location /preview { proxy_pass 192.168.1.233:8012; }

修改kkFileView的配置文件如下两项

server.context-path = /preview base.url = https://file.keking.cn/preview

使用如下地址来访问预览页面

var url = 'https://file.keking.cn/file/test.txt'; //要预览文件的访问地址 window.open('https://file.keking.cn/preview/onlinePreview?url=' encodeURIComponent(url)); trust.host

说明:信任站点,设置了之后,会限制只能预览来自信任站点列表的文件,默认不限制,多个用','隔开, 默认值:未设置 示例:trust.host = file.keking.cn,kkfileview.keking.cn

simText

说明:用来配置预览方式为纯文本的文件类型
默认值:txt,html,htm,asp,jsp,xml,json,properties,md,gitignore,log,java,py,c,cpp,sql,sh,bat,m,bas,prg,cmd

media

说明:用来配置预览方式为多媒体(视频、音频)的文件类型
默认值:mp3,wav,mp4,flv

office.preview.type

说明:office文件(doc、docx、ppt、pptx)、pdf 文件预览方式,默认为图片方式,预览时也有按钮相互切换,可选项:'image', 'pdf'

office.preview.switch.disabled

说明:是否关闭office预览页面上的切换开关,默认不关闭
默认值:false

pdf.download.disable

说明:是否禁止下载转换生成的pdf文件,默认禁止
默认值:true

file.upload.disable

说明:是否禁用演示首页文件上传,默认不禁止
默认值:false

ftp.username

说明:预览url为FTP地址时,默认的ftp用户名,可过url参数中的ftp.username=xxx覆盖,即优先使用url参数中的,如果url参数中没有,则取本配置的
默认值:null

ftp.password

说明:预览url为FTP地址时,默认的ftp密码,可过url参数中的ftp.password=xxx覆盖,即优先使用url参数中的,如果url参数中没有,则取本配置的
默认值:null

ftp.control.encoding

说明:预览源为FTP时, FTP连接默认的ControlEncoding,根据FTP服务器的操作系统选择,Linux一般为设置UTF-8,Windows一般为设置GBK。可过url参数中的ftp.control.encoding=xxx覆盖,即优先使用url参数中的,如果url参数中没有,则取本配置的
默认值:UTF-8

watermark.txt

默认水印内容,如需取消水印,内容设置为空即可,例如:watermark.txt = ${WATERMARK_TXT:}
默认值:''

watermark.x.space

水印x轴间隔
默认值:10

watermark.y.space

水印y轴间隔
默认值:10

watermark.font

水印字体
默认值:微软雅黑

watermark.fontsize

水印字体大小
默认值:18px

watermark.color

水印字体颜色
默认值:black

watermark.alpha

水印透明度,要求设置在大于等于0.005,小于1
默认值:0.2

watermark.width

水印宽度
默认值:180

watermark.height

水印高度 默认值:80

watermark.angle

水印倾斜度数,要求设置在大于等于0,小于90
默认值:10

常见问题Q:怎么把这个项目集成到我的项目里

A:不需要集成,本项目只需要独立部署,向外提供http预览服务(外部系统只需要访问本项目预览接口并传入需要预览文件的url,就可以打开预览页面)

Q:怎么把这个项目放Tomcat里运行

A:不需要放进Tomcat里,编译好的发行包为zip包,直接解压运行一键启动脚本就可以完成部署(需要有java环境)具体部署步骤详见:部署指南

Q:预览并发问题&预览首次打开慢

A:可使用预览转码队列,将需要预览的文件url放入队列中,提前进行转码,本地访问接口为:http://127.0.0.1:8012/addTask?url=http://xxx/test.txt (url参数为需要需要的文件访问地址)

Q:预览乱码

A:乱码问题可能有如下两个原因

编码问题分为如下两方面

  1. Excel文件编码格式 Excel软件是可以选择用什么编码去保存文件的
    目前我们读取Eecel文件是用的服务器操作系统默认编码,可以通过在启动脚本里加入如-Dfile.encoding=UTF-8指定,详见 码云项目首页评论区讨论
  2. 生成html网页编码格式
    生成html网页也是用的服务器操作系统默认编码(java系统属性:sun.jnu.encoding),比如用浏览器用手动更改编码格式为utf-8或gbk打开没有问题,但是用浏览器默认编码就有问题,此时可调整系统配置文件中的配置项converted.file.charset可解决此类乱码问题, 详见 编码配置
Q:Linux下运行startup.sh脚本报错:/bin/bash^M: bad interpreter: No such file or directory

A:一般为在Windows下用IDEA导入项目编译时,默认使用Windows(\r\n)下的文件换行符导致的,导入项目时设置默认换行符为Unix类操作系统换行符再编译即可(File->Settings->Editor->Code Style->Line separator 选择Unix and MacOs(\n))

kk服务器地址和端口,kk6.0服务器端口怎么填(1)

Q:Linux下启动项目后日志报错:org.artofsolving.jodconverter.office.OfficeException: office process died with exit code 127

A:操作系统缺少libXext.so.6包,请自行下载安装:http://kkfileview.keking.cn/fonts.zip

Q:启动项目后日志报错:java.lang.IllegalStateException: a process with acceptString 'socket,host=127.0.0.1,port=8100' is already running; pid 26468

A:有正在运行的openoffice进程,kill掉相关进程再重新启动

Q:Windows系统下启动报错:Error creating bean with name 'cacheServiceRocksDBImpl'

A:本项目默认使用内嵌RocksDB存储引擎作缓存,需要以管理员身份运行,或配置使用其他缓存实现,详见:缓存配置

Q:如何水印文本内容动态传值

A:在预览url后面加上参数&watermarkTxt即可
例如:

var url = 'http://127.0.0.1:8080/file/test.txt'; //要预览文件的访问地址 window.open('http://127.0.0.1:8012/onlinePreview?url=' encodeURIComponent(url) '&watermarkTxt=' encodeURIComponent('动态水印')); Q:使用nginx代理时预览出现异常

A:一般是nginx和kkFileView配置有问题
例如nginx的访问地址为 https://file.keking.cn 想要使用 https://file.keking.cn/preview/来做预览,kkFileView部署在内网192.168.1.233服务器上,需要在nginx中添加反向代理如下:

location /preview { proxy_pass 192.168.1.233:8012; }

修改kkFileView的配置文件如下两项

server.context-path = /preview base.url = https://file.keking.cn/preview

使用如下地址来访问预览页面

var url = 'https://file.keking.cn/file/test.txt'; //要预览文件的访问地址 window.open('https://file.keking.cn/preview/onlinePreview?url=' encodeURIComponent(url)); Q:使用docker部署时如何指定配置文件中的配置项

A:针对docker运行的用户,所有配置项可以使用设置相应的环境变量来配置
环境变量的KEY为配置文件中每个配置项后${}中的KEY
例如,使用docker运行要指定base.url为http://file.keking.cn,docker运行命令如下

docker run -it -d -p 8012:8012 -e BASE_URL="http://file.keking.cn" keking/kkfileview:v2.2.1 Q:使用内网预览时没有问题,但是使用外网预览有问题

A:一般是公司网络使用的路由器不支持或没开启域内NAT,kkFileView无法通过外网地址下载要预览的文件
例如kkFileView部署在公司192.168.1.233服务器上,本地访问http://192.168.1.233:8012可以正常预览
公司运维把192.168.1.233的8012端口暴露到公网ip或域名(http://xxx.xxx.xxx:8012),公网打首页也正常,但是预览就出错
这种一般是因为公司主路由器不支持或没开启域内NAT

预览展示

kk服务器地址和端口,kk6.0服务器端口怎么填(2)

kk服务器地址和端口,kk6.0服务器端口怎么填(3)

kk服务器地址和端口,kk6.0服务器端口怎么填(4)

首页 123下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.