学习不走弯路,通过《mall视频教程(最新版)》,使用更系统、高效的方式来学习mall电商实战项目吧!
不写一行代码!SpringBoot + MinIO实现万能文件在线预览,太酷了!
不写一行代码!SpringBoot + MinIO实现万能文件在线预览,太酷了!
文件存储是项目中常见的功能,我们可以用MinIO来实现文件存储。但是有时候不仅要实现存储,还要实现文件的在线预览,此时就可以用万能文件预览工具kkFileView来实现。 今天给大家分享下SpringBoot + MinIO + kkFileView如何实现任意文件的在线预览功能。
kkFileView简介
kkFileView是一个万能的在线预览开源项目,基于SpringBoot实现,目前在Gitee上已有21k+Star。它易于上手和部署,支持几乎所有常见类型文件的在线预览。
下面是它目前支持的文件类型,文件类型目前还在进一步丰富中:

如果你想深入学习MinIO,这里有个使用MinIO作为对象存储的实战项目,mall项目是一套基于 SpringBoot3 + Vue 的电商系统(Github标星60K),后端支持多模块和 2024最新微服务架构 ,采用Docker和K8S部署。包括前台商城项目和后台管理系统,能支持完整的订单流程!涵盖商品、订单、购物车、权限、优惠券、会员、支付等功能!
- Boot项目:https://github.com/macrozheng/mall
- Cloud项目:https://github.com/macrozheng/mall-swarm
- 视频教程:https://www.macrozheng.com/video/
安装
使用Docker来安装MinIO和kkFileView是非常方便的,这里我们将采用此种方式。
MinIO
- 首先使用如下命令下载MinIO的Docker镜像;
docker pull minio/minio- 然后通过如下命令运行MinIO的容器,此时MinIO的可视化控制台运行在
9001端口上,MinIO服务将运行在9090端口上;
docker run -p 9090:9000 -p 9001:9001 --name minio \
-v /mydata/minio/data:/data \
-e MINIO_ROOT_USER=minioadmin \
-e MINIO_ROOT_PASSWORD=minioadmin \
-d minio/minio server /data --console-address ":9001"- 然后我们输入默认账号密码
minioadmin:minioadmin就可以访问MinIO的控制台了,控制台访问地址:http://192.168.3.101:9001

kkFileView
- 使用如下命令下载kkFileView的Docker镜像;
docker pull keking/kkfileview- 然后通过如下命令运行MinIO的容器,此时容器运行在
8012端口上;
docker run -p 8012:8012 --name kkfileview \
-d keking/kkfileview- 接下来我们就可以访问kkFileView的测试页,访问地址:http://192.168.3.101:8012

使用
接下来我们来讲解下MinIO和kkFileView的使用。
准备
- 首先我们需要在MinIO中创建一个存储桶
preview;

- 然后修改存储桶的访问策略为
Pulbic以便外部访问;

- 之后我们就可以往存储桶中上传文件了,上传好测试的文件;

- 至于这些文件如何访问呢,由于我们的MinIO服务运行在
9090端口上,可以通过如下格式获取到文件地址;
http://192.168.3.101:9090/{bucketName}/{fileName}- 例如我们在存储桶
preview中存储了一个叫avatar.png的文件,访问地址就是这样的:http://192.168.3.101:9090/preview/avatar.png

文件预览
接下来我们来讲解下如何通过kkFileView来预览MinIO中的文件。
图片
- 我们需要先打开kkFileView的预览测试页,输入文件名称后就可以获取到预览链接了:http://192.168.3.101:8012

- 图片文件的预览链接如下:

- 我们可以发现kkFileView的文件预览格式是这样的,通过base64编码后拼接了一个url参数;
http://192.168.3.101:8012/onlinePreview?url=base64Encode($url)word
接下来我们再来看下打开word文档的效果:

再来看下打开pdf文档的效果:

ppt
再来看下打开ppt文档的效果:

markdown
再来看下打开markdown文档的效果:

excel
再来看下打开excel文档的效果:

压缩文件
再来看下打开压缩文件的效果,对于压缩文件支持直接打开预览内部文件。

总结
今天带大家通过SpringBoot + MinIO + kkFileView实现了任意文件的在线预览功能,不用写一行代码就能实现,大家如果在项目中遇到这类需求的话可以尝试下。
项目地址
https://gitee.com/kekingcn/file-online-preview
公众号
