Minio安裝以及使用對象存儲


Minio安裝以及使用

 

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#

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

  1. 創建桶:進入系統后,我們先要點擊右下角的“+”按鈕,創建一個文件桶(輸入名稱后,回車即可),在上傳文件到這個文件桶中。Create bucket(創建文件桶)、Upload file(上傳文件),這里我創建了一個桶test,上傳了一張圖片

  2. 查看桶目錄

進入服務器/data/minio/data目錄,文件桶test相當於文件目錄,這里沒有使用糾刪碼的模式,所以直接就是源文件了。當我們線上運行的項目已經有源文件了,在使用minio的時候,可以直接指定該目錄為minio的文件目錄就行了。

  1. 分享鏈接

上傳的文件,在文件列表界面有一個分享按鈕,點擊分享將生成文件的訪問URL地址,以指定鏈接的有效時間,有效時間最多7天,最小的單位是分鍾。在有效時間過期后在訪問圖片時,會提示失效。

  1. 存儲桶訪問策略

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

設置完成后,只需要通過拷貝鏈接中的前一串路徑即可永久訪問該文件

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 policy set download minio/dnps/ //設置權限:none, download, upload, public  mc policy list minio/dnps/ //查看存儲桶當前權限  mc cp minio/test/small.jpg minio/dnps/ //拷貝文件和對象 

作者: 高宏宇


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM