首页 > 其他分享 >Docker安装KKFileView实现文件的预览

Docker安装KKFileView实现文件的预览

时间:2023-05-08 16:23:47浏览次数:34  
标签:预览 watermark KK spring xx KKFileView Docker true

Docke安装KKFile的脚本:

1、首先根据官网的方法启动Docker实例,然后通过docker CP的命令将application.properties文件复制到/home/kkfile/config的本地目录中,实现配置文件的挂载

docker run -d --name=kkfile --network=host --restart always -v /home/kkfile/config/application.properties:/opt/kkFileView-4.1.0/config/application.properties keking/kkfileview:4.1.0

2、然后修改application.properties的配置文件

 

#######################################不可动态配置,需要重启生效#######################################
server.port = ${KK_SERVER_PORT:8012}
#server.servlet.context-path= ${KK_CONTEXT_PATH:/}
server.servlet.context-path= ${KK_CONTEXT_PATH:/preview}       !!!!!!!!!!!!!!!!!!!!!!
server.servlet.encoding.charset = utf-8
#文件上传限制
spring.servlet.multipart.max-file-size=500MB
spring.servlet.multipart.max-request-size=500MB
## Freemarker 配置
spring.freemarker.template-loader-path = classpath:/web/
spring.freemarker.cache = false
spring.freemarker.charset = UTF-8
spring.freemarker.check-template-location = true
spring.freemarker.content-type = text/html
spring.freemarker.expose-request-attributes = true
spring.freemarker.expose-session-attributes = true
spring.freemarker.request-context-attribute = request
spring.freemarker.suffix = .ftl

# office-plugin
## office转换服务的进程数,默认开启两个进程
office.plugin.server.ports = 2001,2002
## office 转换服务 task 超时时间,默认五分钟
office.plugin.task.timeout = 5m

#预览生成资源路径(默认为打包根路径下的file目录下)
#file.dir = D:\\kkFileview\\
file.dir = ${KK_FILE_DIR:default}

#允许预览的本地文件夹 默认不允许任何本地文件被预览
#file.dir = D:\\kkFileview\\
local.preview.dir = ${KK_LOCAL_PREVIEW_DIR:default}


#openoffice home路径
#office.home = C:\\Program Files (x86)\\OpenOffice 4
office.home = ${KK_OFFICE_HOME:default}

#缓存实现类型,不配默认为内嵌RocksDB(type = default)实现,可配置为redis(type = redis)实现(需要配置spring.redisson.address等参数)和 JDK 内置对象实现(type = jdk),
cache.type =  ${KK_CACHE_TYPE:jdk}
#redis连接,只有当cache.type = redis时才有用
spring.redisson.address = ${KK_SPRING_REDISSON_ADDRESS:127.0.0.1:6379}
spring.redisson.password = ${KK_SPRING_REDISSON_PASSWORD:}
#缓存是否自动清理 true 为开启,注释掉或其他值都为关闭
cache.clean.enabled = ${KK_CACHE_CLEAN_ENABLED:true}
#缓存自动清理时间,cache.clean.enabled = true时才有用,cron表达式,基于Quartz cron
cache.clean.cron = ${KK_CACHE_CLEAN_CRON:0 0 3 * * ?}

#######################################可在运行时动态配置#######################################
#提供预览服务的地址,默认从请求url读,如果使用nginx等反向代理,需要手动设置
#base.url = https://file.keking.cn
#base.url = ${KK_BASE_URL:default}
base.url = http://xx.xx.xx.xx:yyyyy/preview !!!!!!!!!!!!!!!!!!!!

#信任站点,多个用','隔开,设置了之后,会限制只能预览来自信任站点列表的文件,默认不限制
#trust.host = file.keking.cn,kkfileview.keking.cn
trust.host = ${KK_TRUST_HOST:default}

#是否启用缓存
cache.enabled = ${KK_CACHE_ENABLED:true}

#文本类型,默认如下,可自定义添加
simText = ${KK_SIMTEXT:txt,html,htm,asp,jsp,xml,json,properties,md,gitignore,log,java,py,c,cpp,sql,sh,bat,m,bas,prg,cmd}
#多媒体类型,默认如下,可自定义添加
media = ${KK_MEDIA:mp3,wav,mp4,flv}
#是否开启多媒体类型转视频格式转换,目前可转换视频格式有:avi,mov,wmv,3gp,rm
#请谨慎开启此功能,建议异步调用添加到处理队列,并且增加任务队列处理线程,防止视频转换占用完线程资源,转换比较耗费时间,并且控制了只能串行处理转换任务
media.convert.disable = ${KK_MEDIA_CONVERT_DISABLE:false}
#支持转换的视频类型
convertMedias = ${KK_CONVERTMEDIAS:avi,mov,wmv,mkv,3gp,rm}
#office类型文档(word ppt)样式,默认为图片(image),可配置为pdf(预览时也有按钮切换)
office.preview.type = ${KK_OFFICE_PREVIEW_TYPE:image}
#是否关闭office预览切换开关,默认为false,可配置为true关闭
office.preview.switch.disabled = ${KK_OFFICE_PREVIEW_SWITCH_DISABLED:false}

#是否禁止演示模式
pdf.presentationMode.disable = ${KK_PDF_PRESENTATION_MODE_DISABLE:true}
#是否禁止打开文件
pdf.openFile.disable = ${KK_PDF_OPEN_FILE_DISABLE:true}
#是否禁止打印转换生成的pdf文件
pdf.print.disable = ${KK_PDF_PRINT_DISABLE:true}
#是否禁止下载转换生成的pdf文件
pdf.download.disable = ${KK_PDF_DOWNLOAD_DISABLE:true}
#是否禁止bookmark
pdf.bookmark.disable = ${KK_PDF_BOOKMARK_DISABLE:true}
#是否禁用首页文件上传
file.upload.disable = ${KK_FILE_UPLOAD_ENABLED:false}

#预览源为FTP时 FTP用户名,可在ftp url后面加参数ftp.username=ftpuser指定,不指定默认用配置的
ftp.username = ${KK_FTP_USERNAME:ftpuser}
#预览源为FTP时 FTP密码,可在ftp url后面加参数ftp.password=123456指定,不指定默认用配置的
ftp.password = ${KK_FTP_PASSWORD:123456}
#预览源为FTP时, FTP连接默认ControlEncoding(根据FTP服务器操作系统选择,Linux一般为UTF-8,Windows一般为GBK),可在ftp url后面加参数ftp.control.encoding=UTF-8指定,不指定默认用配置的
ftp.control.encoding = ${KK_FTP_CONTROL_ENCODING:UTF-8}

#水印内容
#例:watermark.txt = ${WATERMARK_TXT:凯京科技内部文件,严禁外泄}
#如需取消水印,内容设置为空即可,例:watermark.txt = ${WATERMARK_TXT:}
watermark.txt = ${WATERMARK_TXT:}
#水印x轴间隔
watermark.x.space = ${WATERMARK_X_SPACE:10}
#水印y轴间隔
watermark.y.space = ${WATERMARK_Y_SPACE:10}
#水印字体
watermark.font = ${WATERMARK_FONT:微软雅黑}
#水印字体大小
watermark.fontsize = ${WATERMARK_FONTSIZE:18px}
#水印字体颜色
watermark.color = ${WATERMARK_COLOR:black}
#水印透明度,要求设置在大于等于0.005,小于1
watermark.alpha = ${WATERMARK_ALPHA:0.2}
#水印宽度
watermark.width = ${WATERMARK_WIDTH:180}
#水印高度
watermark.height = ${WATERMARK_HEIGHT:80}
#水印倾斜度数,要求设置在大于等于0,小于90
watermark.angle = ${WATERMARK_ANGLE:10}

#Tif类型图片浏览模式:tif(利用前端js插件浏览);jpg(转换为jpg后前端显示);pdf(转换为pdf后显示,便于打印)
tif.preview.type = ${KK_TIF_PREVIEW_TYPE:tif}

3、在nginx中配置附件的反向代理

#KKFile
 location /preview {
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://xx.xx.xx.xx:8012; //kkfile所在服务器的ip,建议设置为内网ip
 }

#nginx存放附件的地址    
location /attachment/ {
   alias /opt/attachment/;
}

4、在webstorm中进行测试

<!doctype html>
<html>
<head>
    <title></title>
    <meta charset="utf-8" />
    <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/[email protected]/base64.min.js"></script>
</head>
<body>
<canvas id="canvas">您的浏览器不支持canvas!</canvas>
<script>
    var originUrl = 'http://xx.xx.xx.xx:zzzzz/attachment/live-1682328130.mp4'; //要预览文件的访问地址建议内网ip
    window.open('http://yy.yy.yy.yy:zzzzz/preview/onlinePreview?url='+encodeURIComponent(Base64.encode(originUrl))); //nginx访问的外网ip及配置的server监听端口号
</script>
</body>
</html>

总结:这种方式加载会更快一些,http或https流的方式也可以,但只适合小文件的预览如果是较大文件的话会出现超时异常,而且originUrl不一定非要是nginx配置的静态资源地址,也可以是OSS的访问地址,但尽量保证KKFile服务访问预览文件的地址要快捷一些 

标签:预览,watermark,KK,spring,xx,KKFileView,Docker,true
From: https://www.cnblogs.com/Yoona520/p/17382179.html

相关文章

  • docker介绍、什么是虚拟化、docker是什么、容器与虚拟机比较、Docker 概念、docker安
    目录1docker介绍1.1什么是虚拟化2.1docker是什么2.2容器与虚拟机比较2.3Docker概念2docker安装1docker介绍1.1什么是虚拟化在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破......
  • docker 安装centos8
    1、安装基础镜像#dockersearchcentos  查询镜像列表#dockerpullcentos:centos8   拉取要安装的镜像# dockerimages  查询已下在的镜像 #  dockerrun-d-p5022:22--namecentos8--privileged=true5d0da3dc9764/usr/sbin/init  运行镜像......
  • 若依--图片预览组件
    若依的图片预览组件,很实用,放在这里:<template><el-image:src="`${realSrc}`"fit="cover":style="`width:${realWidth};height:${realHeight};`":preview-src-list="realSrcList":preview-teleported="t......
  • Centos7安装Docker CE
    @目录1.CentOS安装Docker1.1.卸载(可选)1.2.安装docker1.3.启动docker1.4.配置镜像加速2.CentOS7安装DockerCompose2.1.下载2.2.修改文件权限2.3.Base自动补全命令:3.Docker镜像仓库3.1.简化版镜像仓库3.2.带有图形化界面版本3.3.配置Docker信任地址Docker分为CE和EE两大版本。......
  • wps表格邮件附件部分图片无法预览的问题(1)
    使用邮箱客户端发送带excel附件的邮件时,客户说部分图片无法查看。我方人员测试下,得到如下几点:1.出问题的.xlsx文件下载后可以正常打开查看,但通过给自己邮箱转发邮件(包含附件),foxmail邮箱客户端下预览附件可以发现部分图片预览不正常,部分图片正常显示。出问题的图片处提示“为帮助......
  • docker 打包 springboot 项目快速入门
    docker打包springboot项目快速入门文末源码@[toc]1.构建Sringboot工程新建项目创建接口packagecom.wangshiyu.javapub.demo.springbootdocker.controller;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.......
  • docker 打包 springboot 项目快速入门
    >收藏不点赞,表示很遗憾docker打包springboot项目快速入门文末源码@[toc]1.构建Sringboot工程新建项目创建接口packagecom.wangshiyu.javapub.demo.springbootdocker.controller;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframewor......
  • 解决mysql出现docker出现access denied for user root@% to database“xxx”的问题
    使用navicat连接Linux上的数据库时,新建一个库出现异常无法创建accessdeniedforuserroot@%todatabase返回Linux查看mysql状态状态正常,navicat也能正常连接,排除掉应该是权限的问题dockerexec-itd7bcc087dce1bash进入mysql容器 mysql-uroot-p登录账......
  • delphi FastReport 自定义预览窗口显示报表
    FastReport自定义预览窗口显示报表属性和方法TfrxReport.PreviewpropertyPreview:TfrxCustomPreview;指向TfrxPreview组件的链接,在其中显示完成的报表。如果此属性为空,则在标准预览窗口中显示报表。TfrxPreviewTfrxPreview组件是为创建自定义预览窗口而设计的。要显......
  • Docker系列---【新建用户没有执行docker命令权限怎么办?】
    新建用户没有执行docker命令权限怎么办?1.背景我用非root用户执行dockerps命令报下面的错docker:GotpermissiondeniedwhiletryingtoconnecttotheDockerdaemonsocketatunix:///var/run/docker.sock:Post"http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/cr......