前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringBoot:kkFileView万能文件在线预览(已开源)

SpringBoot:kkFileView万能文件在线预览(已开源)

作者头像
Freedom123
发布2024-03-29 16:37:46
3330
发布2024-03-29 16:37:46
举报
文章被收录于专栏:DevOpsDevOps

前言

在之前的文章中,我们使用MinIO实现了文件存储,用于存储各种格式的文件。有时候我们不仅需要文件存储,还需要文件的在线预览。这里给大家推荐一个基于SpringBoot的文件预览神器kkFileView,基本支持主流文件的在线预览,使用也很简单,希望对大家有所帮助!

kkFileView简介

kkFileView可以用来搭建文件在线预览服务,在Github上已有5.7k+Star。该项目使用流行的SpringBoot搭建,易上手和部署,基本支持主流办公文档的在线预览,如docx、xlsx、pptx、pdf、txt、zip、图片、视频、音频等等。项目特性可以参考下图。

一、安装部署

kkFileView支持在Windows和Linux下安装,下面我们介绍下它的安装,基本就是开箱即用!

1.Windows
  • 首先下载最新版的安装包,下载地址:https://gitee.com/kekingcn/file-online-preview/releases
  • 下载成功后,解压到指定目录,然后运行bin目录下的startup.bat命令即可;

![图片](data:image/svg+xml,%3C%3Fxml version=‘1.0’ encoding=‘UTF-8’%3F%3E%3Csvg width=‘1px’ height=‘1px’ viewBox=‘0 0 1 1’ version=‘1.1’ xmlns=‘http://www.w3.org/2000/svg’ xmlns:xlink=‘http://www.w3.org/1999/xlink’%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=‘none’ stroke-width=‘1’ fill=‘none’ fill-rule=‘evenodd’ fill-opacity=‘0’%3E%3Cg transform=‘translate(-249.000000, -126.000000)’ fill=‘%23FFFFFF’%3E%3Crect x=‘249’ y=‘126’ width=‘1’ height=‘1’%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)

  • 由于是SpringBoot项目,想要修改配置的话,只需修改config目录下的application.properties文件即可。
2.Linux
  • 在Linux下使用Docker安装非常简单,只需两个命令即可,首先下载kkFileView的Docker镜像;
代码语言:javascript
复制
docker pull keking/kkfileview
  • 下载完成后运行kkfileview的Docker容器,服务将运行在8012端口上;
代码语言:javascript
复制
docker run -p 8012:8012 --name kkfileview \
-d keking/kkfileview
  • 运行成功后,可以访问kkfileview的测试页,地址地址:http://192.168.7.109:8012

二、使用

之前我们使用MinIO搭建了对象存储服务,接下来我们就把kkfileview和MinIO结合起来使用,首先将需要在线预览的文件存储到MinIO中去,然后预览文件。

  • 我们可以使用S3 Browser来管理MinIO中的文件,首先创建一个存储桶为preview,然后将文件都上传上去;
  • 上传成功后需要修改存储桶的访问策略,让匿名用户可以访问;
  • 修改策略时直接参考Policy Examples即可,注意修改下version2012-10-17
  • 修改成功后就可以在线预览文件了,我们来看下在线预览文件的URL格式,只需传入url(需要预览的文件地址)即可,这里要注意的是这个url需要进行base64编码才可以;
代码语言:javascript
复制
http://192.168.7.109:8012/onlinePreview?url=base64Encode($url)
  • 接下来我们来预览个图片试试,首先获取图片的访问地址;
图片
图片
  • 然后找个网站把url进行base64编码,我使用的是这个:https://tool.oschina.net/encrypt?type=3
  • 接下来把url参数放入访问路径中即可预览图片了,是不是很简单!
  • 再来预览下word文档,我们可以发现右侧有个JPG的按钮,可以切换到JPG试图,其实kkfileview是通过把word文档转换为pdf或者JPG来实现文档预览的;
  • 再来预览下ppt文档,发现ppt文档也是通过转化为pdf和JPG来实现预览的;
  • 再来预览下pdf文档,和上面两个并没有啥区别;

![图片](data:image/svg+xml,%3C%3Fxml version=‘1.0’ encoding=‘UTF-8’%3F%3E%3Csvg width=‘1px’ height=‘1px’ viewBox=‘0 0 1 1’ version=‘1.1’ xmlns=‘http://www.w3.org/2000/svg’ xmlns:xlink=‘http://www.w3.org/1999/xlink’%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=‘none’ stroke-width=‘1’ fill=‘none’ fill-rule=‘evenodd’ fill-opacity=‘0’%3E%3Cg transform=‘translate(-249.000000, -126.000000)’ fill=‘%23FFFFFF’%3E%3Crect x=‘249’ y=‘126’ width=‘1’ height=‘1’%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)

  • 再来预览下excel文档,这预览效果有待提高;
  • 再来预览下纯文本的Markdown文档;
  • 最后再来预览下压缩文件,支持查看压缩文件中的内容,点击文件可直接预览。

三、配置

kkfileview的配置众多,具体直接参考config目录下的application.properties文件即可,这里介绍下如何自定义Docker容器中的配置。

  • 如果你想修改kkfileview的配置文件的话,可以先从Docker容器中拷贝出配置文件目录;
代码语言:javascript
复制
docker cp kkfileview:/opt/kkFileView-3.5.1/config /mydata/kkFileView/
  • 然后将配置目录、文件目录、日志目录挂载到宿主机并运行;
代码语言:javascript
复制
docker run -p 8012:8012 --name kkfileview \
-v /mydata/kkFileView/config:/opt/kkFileView-3.5.1/config \
-v /mydata/kkFileView/file:/opt/kkFileView-3.5.1/file \
-v /mydata/kkFileView/log:/opt/kkFileView-3.5.1/log \
-d keking/kkfileview
  • 如果我们想要给预览文件添加水印的话,可以修改application.properties文件中的如下配置,比如我想添加macrozheng这个水印;
代码语言:javascript
复制
#水印内容
#如需取消水印,内容设置为空即可,例:watermark.txt = ${WATERMARK_TXT:}
watermark.txt = ${WATERMARK_TXT:macrozheng}
  • 修改成功后,再次预览图片就会发现水印已经添加了。

小结

通过对kkFileView的一波实践,我们发现kkFileView可以满足Office文档、视频、图片等主流文件的在线预览需求,使用和配置也非常简单。由于它是通过将word、ppt文档转化为pdf来实现预览的,如果你对Office文档预览没有特别高的要求,完全可以使用它搭建一个全能的文件在线预览服务!

1.参考资料

官方文档:https://kkfileview.keking.cn/zh-cn/index.html

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-03-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • kkFileView简介
  • 一、安装部署
    • 1.Windows
      • 2.Linux
      • 二、使用
      • 三、配置
      • 小结
        • 1.参考资料
        相关产品与服务
        容器服务
        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档