不寫一行程式碼!SpringBoot + MinIO實現萬能檔案線上預覽,太酷了!

macrozheng發表於2024-12-03
檔案儲存是專案中常見的功能,我們可以用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

專案演示:

安裝

使用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

再來看下開啟pdf文件的效果:

ppt

再來看下開啟ppt文件的效果:

markdown

再來看下開啟markdown文件的效果:

excel

再來看下開啟excel文件的效果:

壓縮檔案

再來看下開啟壓縮檔案的效果,對於壓縮檔案支援直接開啟預覽內部檔案。

總結

今天帶大家透過SpringBoot + MinIO + kkFileView實現了任意檔案的線上預覽功能,不用寫一行程式碼就能實現,大家如果在專案中遇到這類需求的話可以嘗試下。

專案地址

https://gitee.com/kekingcn/file-online-preview

相關文章