0x00 前言本文將要介紹Minio版本探測的方法,通過Python實現自動化,記錄開發細節,開源代碼。
0x01 簡介本文將要介紹以下內容:
實現思路
實現細節
開源代碼
0x02 基礎知識MinIO是一款基於Go語言發開的高性能、分佈式的對象存儲系統。 Minio可以做為雲存儲的解決方案用來保存海量的圖片,視頻,文檔。由於採用Go語言實現,服務端可以工作在Windows,Linux, OS X 和FreeBSD上,並且只需要單獨的可執行程序就可以運行。
在Windows上的環境搭建可參考:https://min.io/docs/minio/windows/index.html
1.下載最新版本:https://dl.min.io/server/minio/release/windows-amd64/minio.exe
歷史版本:https://dl.min.io/server/minio/release/windows-amd64/archive/
歷史版本在下載後將文件後綴名添加.exe,運行即可
2.啟動服務命令行參數:minio.exe server C:\minio --console-address :9090
3.Web訪問URL地址:http://127.0.0.1:9090
默認用戶名:minioadmin
默認口令:minioadmin
0x03 實現思路Minio的版本探測需要登錄到Web後台
訪問位置:Health頁面,如下圖
從頁面中可以看到當前版本以及節點和存儲的信息
在程序實現上,我們可以通過抓包的方式分析認證過程,具體內容如下:
1.登錄訪問地址:http://127.0.0.1:9090/api/v1/login
通過json格式傳入認證信息,具體內容如下:
登錄成功後返回狀態碼204,在Header中添加Cookie: token=xxxx作為憑據
2.讀取版本信息訪問地址:http://127.0.0.1:9090/api/v1/admin/info
需要帶有Cookie: token=xxxx作為憑據
返回結果為json格式,如下圖
補充:獲得Minio的最新版本訪問地址:http://127.0.0.1:9090/api/v1/check-version
0x04 實現細節1.登錄這裡需要考慮一個問題:默認端口被修改的情況
在用程序實現自動化時,通常會使用端口9000,但存在端口被修改為9001的情況,也存在很少一部分將端口修改為其他不常見的端口
如果端口錯誤,會返回狀態碼400,返回內容示例:
所以在程序實現上這裡可以添加一個判斷:當使用默認端口9000時,如果返回特定條件,提示端口錯誤,接下來嘗試端口9001,如果再次失敗,提示修改默認端口
完整示例代碼:
2.讀取版本信息返回結果為json格式,結果示例:
這裡存在多個servers的情況,所以在解析時需要使用遍歷,示例代碼如下:
0x05 開源代碼完整的實現代碼已上傳至github,地址如下:https://github.com/3gstudent/Homework-of-Python/blob/master/MinIO_GetVersion.py
代碼支持以下兩種命令:
getversin:用來獲得版本信息
getinfo:用來獲得完整信息
0x06 小結本文介紹了Minio版本探測的方法,結合實際環境介紹了通過Python開發的細節,開源代碼。
Recommended Comments