项目地址:https://gitee.com/kekingcn/file-online-preview

文件存储是项目中常见的功能,可以用MinIO来实现文件存储。但是有时候不仅要实现存储,还要实现文件的在线预览,此时就可以用万能文件预览工具kkFileView来实现。这里通过MinIO + kkFileView如何实现任意文件的在线预览功能。

kkFileView简介

kkFileView是一个万能的在线预览开源项目,基于SpringBoot实现,目前在Gitee上已有<font style="color:rgb(40, 202, 113);">21k+Star</font>。它易于上手和部署,支持几乎所有常见类型文件的在线预览。 下面是它目前支持的文件类型,文件类型目前还在进一步丰富中:

MinIO + kkFileView实现万能文件在线预览 - 图1

安装

使用Docker来安装MinIO和kkFileView是非常方便的,这里采用此种方式。

MinIO

  • 首先使用如下命令下载MinIO的Docker镜像;
  1. docker pull minio/minio
  • 然后通过如下命令运行MinIO的容器,此时MinIO的可视化控制台运行在<font style="color:rgb(40, 202, 113);">9001</font>端口上,MinIO服务将运行在<font style="color:rgb(40, 202, 113);">9090</font>端口上;
  1. docker run -p 9090:9000 -p 9001:9001 --name minio \
  2. -v /mydata/minio/data:/data \
  3. -e MINIO_ROOT_USER=minioadmin \
  4. -e MINIO_ROOT_PASSWORD=minioadmin \
  5. -d minio/minio server /data --console-address ":9001"
  • 然后输入默认账号密码<font style="color:rgb(40, 202, 113);">minioadmin:minioadmin</font>就可以访问MinIO的控制台了,控制台访问地址:http://192.168.3.101:9001

MinIO + kkFileView实现万能文件在线预览 - 图2

kkFileView

  • 使用如下命令下载kkFileView的Docker镜像;
  1. docker pull keking/kkfileview
  • 然后通过如下命令运行MinIO的容器,此时容器运行在<font style="color:rgb(40, 202, 113);">8012</font>端口上;
  1. docker run -p 8012:8012 --name kkfileview \
  2. -d keking/kkfileview

MinIO + kkFileView实现万能文件在线预览 - 图3

使用

接下来讲解下MinIO和kkFileView的使用。

准备

  • 首先需要在MinIO中创建一个存储桶<font style="color:rgb(40, 202, 113);">preview</font>

MinIO + kkFileView实现万能文件在线预览 - 图4

  • 然后修改存储桶的访问策略为<font style="color:rgb(40, 202, 113);">Pulbic</font>以便外部访问;

MinIO + kkFileView实现万能文件在线预览 - 图5

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

MinIO + kkFileView实现万能文件在线预览 - 图6

文件预览

接下来讲解下如何通过kkFileView来预览MinIO中的文件。

图片

  • 需要先打开kkFileView的预览测试页,输入文件名称后就可以获取到预览链接了:http://192.168.3.101:8012

MinIO + kkFileView实现万能文件在线预览 - 图7

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

MinIO + kkFileView实现万能文件在线预览 - 图8

word

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

MinIO + kkFileView实现万能文件在线预览 - 图9

pdf

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

MinIO + kkFileView实现万能文件在线预览 - 图10

ppt

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

MinIO + kkFileView实现万能文件在线预览 - 图11

markdown

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

MinIO + kkFileView实现万能文件在线预览 - 图12

excel

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

MinIO + kkFileView实现万能文件在线预览 - 图13

压缩文件

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

MinIO + kkFileView实现万能文件在线预览 - 图14

总结

通过MinIO + kkFileView实现了任意文件的在线预览功能,不用写一行代码就能实现,如果在项目中遇到这类需求的话可以尝试下。