Minio介紹
MinIO 是一個基於Apache License v2.0開源協議的物件儲存服務。適合於儲存大容量非結構化的資料,例如圖片、影片、日誌檔案、備份資料和容器/虛擬機器映象等,而一個物件檔案可以是任意大小,從數KB到最大5TB都能很好的支援。開源並且用Go語言開發,有web操作介面,我們可以用它來搭建相容S3協議的儲存雲服務。相比 hadoop hdfs 分散式儲存服務輕量很多,且支援單節點部署。
SDK(API):
官方安裝文件,MinIO提供了很多語言的SDK跟API支援:javascript,Java,python,Golang、.Net。
分部署部署:
-
分散式MinIO裡所有的節點需要有同樣的access秘鑰和secret秘鑰,這樣節點才能建立聯接。需要在執行minio server命令之前,先將access秘鑰和secret秘鑰export成環境變數。
-
分散式MinIOo使用的磁盤裡必須是乾淨的,裡面沒有資料。
-
分散式MinIO裡的節點時間差不能超過3秒
-
分散式部署至少需要4個節點,否則啟動會報錯
MinIO支援單機部署、多租戶部署、分散式部署。支援原始檔案儲存已經糾刪碼模式儲存。單機部署時,可使用minio的客戶端工具進行備份。
安裝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/
-
登陸:在輸入控制列印的預設的AccessKey和SecretKey:
AccessKey: minioadmin SecretKey: minioadmin

-
建立桶:進入系統後,我們先要點選右下角的“+”按鈕,建立一個檔案桶(輸入名稱後,回車即可),在上傳檔案到這個檔案桶中。Create bucket(建立檔案桶)、Upload file(上傳檔案),這裡我建立了一個桶test,上傳了一張圖片
-
檢視桶目錄
進入伺服器/data/minio/data目錄,檔案桶test相當於檔案目錄,這裡沒有使用糾刪碼的模式,所以直接就是原始檔了。當我們線上執行的專案已經有原始檔了,在使用minio的時候,可以直接指定該目錄為minio的檔案目錄就行了。

-
分享連結
上傳的檔案,在檔案列表介面有一個分享按鈕,點選分享將生成檔案的訪問URL地址,以指定連結的有效時間,有效時間最多7天,最小的單位是分鐘。在有效時間過期後在訪問圖片時,會提示失效。

-
儲存桶訪問策略
要想獲取一個永久的訪問路徑,需要修改儲存桶的訪問策略,點選儲存桶右上角的編輯策略按鈕來修改訪問策略,有三種訪問策略可以選擇:只讀、只寫、可讀可寫,這裡我們選擇只讀即可,但是需要注意的是,訪問字首需要設定為.,否則會無法訪問;

設定完成後,只需要透過複製連結中的前一串路徑即可永久訪問該檔案

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 [–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
policyset
download minio/dnps/ //設定許可權:none, download, upload, public
mc
policylist
minio/dnps/ //檢視儲存桶當前許可權
mc cp minio/
test
/small.jpg minio/dnps/ //複製檔案和物件

連結:https://www.cnblogs.com/xiexun/p/15236703.html
(版權歸原作者所有,侵刪)