幫非結構化資料找個家,快速入門MinIO(一):基本概念介紹

更新於 發佈於 閱讀時間約 5 分鐘

之前實習時剛好公司有需要實作MinIO相關自動化腳本的需求,算是把MinIO摸得蠻仔細的,剛好網路上沒有太多相關中文資訊,趁這個機會來介紹一下MinIO,若有興趣就歡迎看下去吧~

來源:MinIO官網

來源:MinIO官網

MinIO是什麼?

MinIO是一個使用Golang開發的雲端儲存的開源專案,專注於儲存大量的非結構化的數據,如圖片、影片、文字等任何非結構化的數據,類似於AWS S3的開源版本,可以在影像辨識、NLP模型的訓練及重新部署等情境發揮作用。

MinIO的元件

MinIO最主要的元件共有兩個,分別為Bucket和Object,Object為任一種非結構化數據在MinIO的資料結構,而Bucket則是儲存Object的空間,以實際應用為例,如貓狗辨識專案即可建立一個名為貓狗辨識的Bucket、信用卡號辨識專案即可建立一個名為信用卡號辨識的Bucket(如下圖),Bucket和Object有點類似資料夾和資料夾內存的檔案的關係。

Bucket和Object示意圖

Bucket和Object示意圖

MinIO的資源管理

由於MinIO算是一個檔案管理的工具,因此最重要的就是資源管理,這邊會介紹幾個MinIO提供跟資源管理相關的主要功能。

1. Bucket的容量上限(Quota)
由於伺服器會有容量限制,因此管理者可以幫每個專案使用的Bucket設定容量上限(Quota),藉此限制每個專案能使用的資源,若沒有進行限制,MinIO會預設為無上限的容量。
2. 生命週期(LifeCycle)
由於Bucket內可以再設新增子路徑,因此可以幫每個Bucket內的子路徑下的檔案設定回收的機制,以剛剛貓狗辨識專案為例,假設總共7/1、7/2、7/3三個時間各自上傳了100張圖片,即可將檔案分別放到(貓狗辨識/0701、貓狗辨識/0702、貓狗辨識/0703)三個路徑下,如果希望圖片都不存放超過10天,即可幫這三個路徑各自設定自動回收的天數,三個路徑下的圖片就會分別於7/11、7/12、7/13進行刪除。
3.超過上限的處理方式(FIFO, HARD)
由於前面提到每個Bucket有Quota的限制,因此當上傳檔案超過Qutoa的限制時,MinIO提供兩種處理方式,分別是FIFO和HARD,FIFO代表的就是First-In-First-Out,也就是會自動把最舊的檔案移除,讓新的檔案放入Bucket,但FIFO已於(2022.02.02後的版本)因效能問題被移除,因此只有使用舊的版本時能使用;而HARD的處理方式則是直接禁止新的檔案進行上傳
儲存類型種類

儲存類型種類

MinIO的權限管理

除了資源管理外,另一個重要功能就是權限管理,特別是在公司內部運用時,哪個小組可以上傳、刪除或取得哪個Bucket的檔案,都是需要被管理的,接下來我們就來介紹吧。

1. 權限種類(Policy)
首先第一個就是權限種類(Policy),相對於RDMS使用的GET、Create、DELETE等方法,在MinIO最常見的元件是Bucket和Object,因此就會有GetObject、DeleteBucket等Policy,詳細的Policy種類可以查看Docs
由於一位User通常會需要多個權限,會需要權限組合因此會使用一個JSON檔案去定義權限組合,如下圖就代表擁有這個Policy的User可以對bucket2下面所有的資源做Action裡面的權限(GetBucketLocation….)
Policy的JSON檔範例

Policy的JSON檔範例

2.群組和使用者(Group and User)
在一般公司最常運用的方式就是某個部門、小組的人同時擁有某個權限組合,在MinIO也提供這種功能,如下圖範例可以定義好如上圖的權限組合(Bucket1 Read Write Policy)和(Bucket1 Read Only Policy)後,可以分別Assign給群組或個人權限,當Assign給群組權限(Group1)時,群組底下的User(Kelly、Amy)就會自動獲得所屬群組的權限。
Policy分配邏輯

Policy分配邏輯

以上就是MinIO的最基礎的幾個概念介紹,希望能幫從0開始的新手們了解MinIO最基礎的概念,希望對你有幫助。若還有其他想問的或希望我介紹的,可以用FB私訊或在下面回應,我會盡我所能回答你喔~

之後反應不錯的話,我會再撰寫關於應用和如何用程式實作的範例文章,若有錯誤或不周延的地方,再請各位大神指教、糾正了,謝謝大家~

若覺得有幫助可以追蹤我、按喜歡、收藏,我就會寫出更多相關文章,謝謝你~
若還有其他想問的或希望我介紹的,可以用FB私訊或在下面回應,我會盡我所能回答

你可能還會想看:

CNN實作Kaggle貓狗影像辨識(Pytorch)

AWS CCP考試準備資源與心得分享(Certified Cloud Practitioner)

留言
avatar-img
留言分享你的想法!
avatar-img
吉米富的沙龍
2會員
37內容數
大學科系選擇技巧、高中升學考試經驗分享
吉米富的沙龍的其他內容
2023/01/17
這半年因為準備工作開始摸AWS,用Free-Tier摸了大概3個月左右後,雖然會用一些簡單服務部署Side Project,但AWS真的太博大精深,覺得還是對AWS的框架有個了解比較好,有證照對於履歷上還是比較有幫助,這篇會簡單介紹一下AWS的證照類型,著重在考試準備資源、方式和考試當天的過程,有興
Thumbnail
2023/01/17
這半年因為準備工作開始摸AWS,用Free-Tier摸了大概3個月左右後,雖然會用一些簡單服務部署Side Project,但AWS真的太博大精深,覺得還是對AWS的框架有個了解比較好,有證照對於履歷上還是比較有幫助,這篇會簡單介紹一下AWS的證照類型,著重在考試準備資源、方式和考試當天的過程,有興
Thumbnail
2020/04/23
最近剛好修了Pytorch相關的課,在Kaggle上也丟了個比賽,想說就來分享一下Pytorch的入門實戰,我會實作一個最入門的用CNN辨識貓狗的程式,但關於CNN理論的部分我不會提到太多,有興趣就麻煩再去搜尋了~ CNN是什麼? 先簡單介紹一下CNN,CNN的全名是(Convolutional N
Thumbnail
2020/04/23
最近剛好修了Pytorch相關的課,在Kaggle上也丟了個比賽,想說就來分享一下Pytorch的入門實戰,我會實作一個最入門的用CNN辨識貓狗的程式,但關於CNN理論的部分我不會提到太多,有興趣就麻煩再去搜尋了~ CNN是什麼? 先簡單介紹一下CNN,CNN的全名是(Convolutional N
Thumbnail
看更多
你可能也想看
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
本篇介紹跨平台存取控制系統 Oso 以及它的規則語言 Polar,用他們替專案建立 RBAC 以及資源級的存取控制。
Thumbnail
本篇介紹跨平台存取控制系統 Oso 以及它的規則語言 Polar,用他們替專案建立 RBAC 以及資源級的存取控制。
Thumbnail
Sandbox 架構 /Documents:主要用於儲存用戶生成的數據或者不能重新創建的數據。這些可能包括由你的應用程式創建的文件、從服務器下載的文件、用戶在應用程式中創建或修改的數據等。 這些數據在應用程式的生命週期中是持久保存的,即使應用程式被終止或者系統重啟,這些數據也會保留。此外
Thumbnail
Sandbox 架構 /Documents:主要用於儲存用戶生成的數據或者不能重新創建的數據。這些可能包括由你的應用程式創建的文件、從服務器下載的文件、用戶在應用程式中創建或修改的數據等。 這些數據在應用程式的生命週期中是持久保存的,即使應用程式被終止或者系統重啟,這些數據也會保留。此外
Thumbnail
本文針對Kubernetes內最基本的資源(cpu, ram, disk)的計算單位與一些實務操作,分享給自已與大家做參考。
Thumbnail
本文針對Kubernetes內最基本的資源(cpu, ram, disk)的計算單位與一些實務操作,分享給自已與大家做參考。
Thumbnail
👨‍💻 簡介 今天快速介紹一下對檔案的操作所使用的package os,包括檔案和資料夾操作等。 檔案和資料夾操作 os package 可以執行各種檔案和資料夾操作,如建立、讀取、寫入、刪除檔案,以及取得資料夾內容等。
Thumbnail
👨‍💻 簡介 今天快速介紹一下對檔案的操作所使用的package os,包括檔案和資料夾操作等。 檔案和資料夾操作 os package 可以執行各種檔案和資料夾操作,如建立、讀取、寫入、刪除檔案,以及取得資料夾內容等。
Thumbnail
不論我們使用Nodejs的Mongo Client還是Go語言甚至其他語言的套件, 應該都會看到連線選項中有poolSize這類的配置, 以下會介紹什麼是連線池、優點、應注意的事項。 首先來談談連接池之前的單一連接機制, 在配置正確的狀況下可能不會遇到任何問題, 但假設我們的應用同時間有100個用戶
Thumbnail
不論我們使用Nodejs的Mongo Client還是Go語言甚至其他語言的套件, 應該都會看到連線選項中有poolSize這類的配置, 以下會介紹什麼是連線池、優點、應注意的事項。 首先來談談連接池之前的單一連接機制, 在配置正確的狀況下可能不會遇到任何問題, 但假設我們的應用同時間有100個用戶
Thumbnail
主要是收攏documents的容器, 可以支援各種不同結構的document。 不能為空字串。 不能以system開頭, 這是系統集合保留的前綴。 超過配置大小, 新增時當超過配置限額時, 會先從最早的document刪除後再append新的document。 更新時不能超過size限制。 不能刪除
Thumbnail
主要是收攏documents的容器, 可以支援各種不同結構的document。 不能為空字串。 不能以system開頭, 這是系統集合保留的前綴。 超過配置大小, 新增時當超過配置限額時, 會先從最早的document刪除後再append新的document。 更新時不能超過size限制。 不能刪除
Thumbnail
之前實習時剛好公司有需要實作MinIO相關自動化腳本的需求,算是把MinIO摸得蠻仔細的,剛好網路上沒有太多相關中文資訊,趁這個機會來介紹一下MinIO,若有興趣就歡迎看下去吧~ MinIO是什麼? MinIO是一個使用Golang開發的雲端儲存的開源專案,專注於儲存大量的非結構化的數據,如圖片、影
Thumbnail
之前實習時剛好公司有需要實作MinIO相關自動化腳本的需求,算是把MinIO摸得蠻仔細的,剛好網路上沒有太多相關中文資訊,趁這個機會來介紹一下MinIO,若有興趣就歡迎看下去吧~ MinIO是什麼? MinIO是一個使用Golang開發的雲端儲存的開源專案,專注於儲存大量的非結構化的數據,如圖片、影
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News