一、MinIO
1、简介
文件存储是项目中常见的功能,我们可以用MinIO来实现文件存储。但是有时候不仅要实现存储,还要实现文件的在线预览,此时就可以用万能文件预览工具kkFileView来实现。今天给大家分享下SpringBoot + MinIO + kkFileView如何实现任意文件的在线预览功能。
支持 doc, docx, xls, xlsx, xlsm, ppt, pptx, csv, tsv, dotm, xlt, xltm, dot, dotx,xlam, xla ,pages 等 Office 办公文档
支持 wps, dps, et, ett, wpt 等国产 WPS Office 办公文档
支持 odt, ods, ots, odp, otp, six, ott, fodt, fods 等OpenOffice、LibreOffice 办公文档
支持 vsd, vsdx 等 Visio 流程图文件
支持 wmf, emf 等 Windows 系统图像文件
支持 psd ,eps 等 Photoshop 软件模型文件
支持 pdf ,ofd, rtf 等文档
支持 xmind 软件模型文件
支持 bpmn 工作流文件
支持 eml 邮件文件
支持 epub 图书文档
支持 obj, 3ds, stl, ply, gltf, glb, off, 3dm, fbx, dae, wrl, 3mf, ifc, brep, step, iges, fcstd, bim 等 3D 模型文件
支持 dwg, dxf, dwf, iges , igs, dwt, dng, ifc, dwfx, stl, cf2, plt 等 CAD 模型文件
支持 txt, xml(渲染), xbrl(渲染), md(渲染), java, php, py, js, css 等所有纯文本
支持 zip, rar, jar, tar, gzip, 7z 等压缩包
支持 jpg, jpeg, png, gif, bmp, ico, jfif, webp 等图片预览(翻转,缩放,镜像)
支持 tif, tiff 图信息模型文件
支持 tga 图像格式文件
支持 svg 矢量图像格式文件
支持 mp3,wav,mp4,flv 等音视频格式文件
支持 avi,mov,rm,webm,ts,rm,mkv,mpeg,ogg,mpg,rmvb,wmv,3gp,ts,swf 等视频格式转码预览
支持 dcm 等医疗数位影像预览
支持 drawio 绘图预览
2、项目地址
https://gitee.com/kekingcn/file-online-preview
3、安装
使用Docker来安装MinIO和kkFileView是非常方便的,这里我们将采用此种方式。
MinIO
-
首先使用如下命令下载MinIO的Docker镜像;
docker pull minio/minio
-
然后通过如下命令运行MinIO的容器,此时MinIO的可视化控制台运行在 9001端口上,MinIO服务将运行在9090端口上; - 环境变量增两个,MINIO_ACCESS_KEY 和 MINIO_SECRET_KEY,分别对应用户名和密码。
- 映射两个文件夹,data 和 config。
/docker/minio/data配置装载路径/data/docker/minio/config配置装载路径/root/.minio(其中.千万不能漏)
docker run -p 9090:9000 -p 9001:9001 --name minio
-v /mydata/minio/data:/data
-e MINIO_ACCESS_KEY=minioadmin
-e MINIO_SECRET_KEY=minioadmin
-d minio/minio server /data --console-address ":9001"
-
然后我们输入默认账号密码 minioadmin:minioadmin就可以访问MinIO的控制台了,控制台访问地址:http://192.168.3.101:9001

二、kkFileView
1、安装
-
使用如下命令下载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

2、使用
接下来我们来讲解下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
3、文件预览
接下来我们来讲解下如何通过kkFileView来预览MinIO中的文件。
图片
-
我们需要先打开kkFileView的预览测试页,输入文件名称后就可以获取到预览链接了:http://192.168.3.101:8012
图片文件的预览链接如下:
-
我们可以发现kkFileView的文件预览格式是这样的,通过base64编码后拼接了一个url参数;
http://192.168.3.101:8012/onlinePreview?url=base64Encode($url)
总结
今天带大家通过SpringBoot + MinIO + kkFileView实现了任意文件的在线预览功能,不用写一行代码就能实现,大家如果在项目中遇到这类需求的话可以尝试下。
文章评论