miniIO系列文章02---安裝及使用
目錄
1.Minio介紹
2.安裝MinIO
3. MinIO客戶端
1.Minio介紹
MinIO 是一個基於Apache License v2.0開源協議的物件儲存服務。適合於儲存大容量非結構化的資料,例如圖片、視訊、日誌檔案、備份資料和容器/虛擬機器映象等,而一個物件檔案可以是任意大小,從數KB到最大5TB都能很好的支援。開源並且用Go語言開發,有web操作介面,我們可以用它來搭建相容S3協議的儲存雲服務。相比 hadoop hdfs 分散式儲存服務輕量很多,且支援單節點部署。
SDK(API):
官方安裝文件,MinIO提供了很多語言的SDK跟API支援:javascript,Java,python,Golang、.Net。
分部署部署:
1) 分散式MinIO裡所有的節點需要有同樣的access祕鑰和secret祕鑰,這樣節點才能建立聯接。需要在執行minio server命令之前,先將access祕鑰和secret祕鑰export成環境變數。
2) 分散式MinIOo使用的磁盤裡必須是乾淨的,裡面沒有資料。
3) 分散式MinIO裡的節點時間差不能超過3秒
4) 分散式部署至少需要4個節點,否則啟動會報錯
MinIO支援單機部署、多租戶部署、分散式部署。支援原始檔案儲存已經糾刪碼模式儲存。單機部署時,可使用minio的客戶端工具進行備份。
Minio 為什麼沒有 POST 上傳介面?
2.安裝MinIO
MinIO的安裝方式有很多,支援docker容器安裝、二進位制方式安裝,這裡我選擇docker安裝方式,docker環境預設已安裝,docker可參考,本篇主要學習安裝、以及上傳圖片。
2.1 拉取MinIO映象
# docker pull minio/minio
2.2 檢視映象
# docker images
2.3 執行映象MinIO
docker run -p 9090:9000 --name minio \
-v /etc/localtime:/etc/localtime \
-v /data/minio/data:/data \
-v /data/minio/config:/root/.minio \
-d minio/minio server /data
檢視正在執行的容器:
# docker ps
檢視MinIO容器日誌 :
# docker logs 0d3eaca91ffc
監控MinioDocker容器:
# docker stats 0d3eaca91ffc
2.4 瀏覽器訪問
http://172.20.32.232:9090/
1) 登陸:在輸入控制列印的預設的AccessKey和SecretKey:
AccessKey: minioadmin SecretKey: minioadmin
2) 建立桶:進入系統後,我們先要點選右下角的“+”按鈕,建立一個檔案桶(輸入名稱後,回車即可),在上傳檔案到這個檔案桶中。Create bucket(建立檔案桶)、Upload file(上傳檔案),這裡我建立了一個桶test,上傳了一張圖片
3) 檢視桶目錄
進入伺服器/data/minio/data目錄,檔案桶test相當於檔案目錄,這裡沒有使用糾刪碼的模式,所以直接就是原始檔了。當我們線上執行的專案已經有原始檔了,在使用minio的時候,可以直接指定該目錄為minio的檔案目錄就行了。
4) 分享連結
上傳的檔案,在檔案列表介面有一個分享按鈕,點選分享將生成檔案的訪問URL地址,以指定連結的有效時間,有效時間最多7天,最小的單位是分鐘。在有效時間過期後在訪問圖片時,會提示失效。
5) 儲存桶訪問策略
要想獲取一個永久的訪問路徑,需要修改儲存桶的訪問策略,點選儲存桶右上角的編輯策略按鈕來修改訪問策略,有三種訪問策略可以選擇:只讀、只寫、可讀可寫,這裡我們選擇只讀即可,但是需要注意的是,訪問字首需要設定為*.*,否則會無法訪問;
設定完成後,只需要通過拷貝連結中的前一串路徑即可永久訪問該檔案
3. MinIO客戶端
MinIO Client (mc)為ls,cat,cp,mirror,diff,find等UNIX命令提供了一種替代方案。它支援檔案系統和相容Amazon S3的雲端儲存服務(AWS Signature v2和v4)。MinIO服務端中並沒有自帶客戶端,所以我們需要安裝配置完客戶端後才能使用。
官方參考文件
常用mc的命令:
命令 作用
ls 列出檔案和資料夾
mb 建立一個儲存桶或一個資料夾
cat 顯示檔案和物件內容
pipe 將一個STDIN重定向到一個物件或者檔案或者STDOUT
share 生成用於共享的URL
cp 拷貝檔案和物件
mirror 給儲存桶和資料夾做映象
find 基於引數查詢檔案
diff 對兩個資料夾或者儲存桶比較差異
rm 刪除檔案和物件
events 管理物件通知
watch 監聽檔案和物件的事件
policy 管理訪問策略
session 為cp命令管理儲存的會話
config 管理mc配置檔案
update 檢查軟體更新
version 輸出版本資訊
3.1下載MinIO Client 的Docker映象
# docker pull minio/mc
3.2 執行映象MinIO Client
如果想用mc操作其它S3相容的服務,採用下面的方式來啟動容器,然後使用mc config命令。
# docker run -it --entrypoint=/bin/sh minio/mc
說明: -it 開啟STDIN,用於控制檯互動
--entrypoint="", 覆蓋image的入口點
新增一個或多個S3相容的服務,請參考下面說明。mc將所有的配置資訊都儲存在~/.mc/config.json檔案中。
如果容器啟動中,需要重新進入:
docker attach id 進入某個容器(使用exit退出後容器也跟著停止執行)
docker exec -ti id /bin/sh 啟動一個偽終端以互動式的方式進入某個容器(使用exit退出後容器不停止執行)
# docker exec -it ec6e0a2023e5 /bin/sh
3.3 新增一個雲端儲存服務
命令格式:mc config host add <ALIAS> <YOUR-S3-ENDPOINT> <YOUR-ACCESS-KEY> <YOUR-SECRET-KEY> [--api API-SIGNATURE]
別名ALIAS就是給你的雲端儲存服務起了一個短點的外號
S3 endpoint,access key和secret key是你的雲端儲存服務提供的
API簽名是可選引數,預設情況下,它被設定為"S3v4"
# mc config host add minio http://172.20.32.232:9090 minioadmin minioadmin --api s3v4
3.4 常用操作
# mc ls minio //檢視儲存桶
# mc ls minio/test //檢視儲存桶test中存在的檔案
3.5 建立儲存桶(比如:儲存桶dnps)
# mc mb minio/dnps //建立一個名為dnps的儲存桶
#mc share download minio/test/small.jpg //共享test桶下small.jpg檔案的下載路徑
#mc find minio/test --name "*.jpg" //查詢test儲存桶中的png檔案
# mc policy set download minio/dnps/ //設定許可權:none, download, upload, public
# mc policy list minio/dnps/ //檢視儲存桶當前許可權
# mc cp minio/test/small.jpg minio/dnps/ //拷貝檔案和物件
————————————————
版權宣告:本文為CSDN博主「Word哥」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/finghting321/article/details/108512694