minio簡單使用記錄
一個(gè)前端基建項(xiàng)目,將各個(gè)組件上傳至后臺(tái),然后提供預(yù)覽、下載等服務(wù),其中后端使用nestjs構(gòu)建,文件上傳、下載功能暫時(shí)只是通過接口將用戶上傳文件保存至服務(wù)器,文件讀取、寫入等操作較為繁瑣,考慮是否可以使用minio代替原有方式。
minio安裝
可以參考minio官網(wǎng)進(jìn)行操作,但是windows設(shè)備不建議在wsl中使用docker運(yùn)行,嘗試數(shù)次,均出現(xiàn)無故重啟的問題??梢灾苯酉螺d官網(wǎng)提供的exe文件,按照官網(wǎng)文檔進(jìn)行操作就可以了。在下載完成后,最好將minio寫入環(huán)境變量中,方便我們在終端中直接運(yùn)行。
在nestjs中使用。
minio提供了nodejs調(diào)用的sdk,我們直接使用封裝好的wrap層minio-nestjs-client,當(dāng)然也可以自己封裝,我們簡單看一下其實(shí)現(xiàn)。


使用nestjs提供的ConfigurableModuleBuilder返回一個(gè)動(dòng)態(tài)模塊,供我們在使用時(shí)對minio進(jìn)行一些配置,然后我們就可以直接使用其提供的MinioService獲取mino client。


創(chuàng)建桶
在配置好minio后,我們需要先創(chuàng)建一個(gè)桶,用于存放我們即將存儲(chǔ)的文件。我們直接調(diào)用minio提供的makeBucket函數(shù)創(chuàng)建即可。

文件上傳
文件上傳,需要參考一下nestjs官網(wǎng)中文件上傳的文檔


非常方便,這樣,我們已經(jīng)將文件保存到了minio中。
下載、刪除、查找等操作,我們直接調(diào)用minio提供的接口即可。