MINIO對象存儲服務(wù)

MINIO對象存儲服務(wù)

說多了都是扯淡,簡單得一P,貼個官方中文文檔

http://docs.minio.org.cn/docs/

docker啟動

# 拉鏡像
docker pull minio/minio
# 啟動
docker run -d -p 9000:9000 --name minio1 -v /mnt/data:/data -v /mnt/config:/root/.minio  minio/minio server /
## 官方的啟動是前臺,且容器消失之后存儲的數(shù)據(jù)也就沒了,簡單解釋下。
-d: 后臺啟動
-v: docker卷操作,/data是minio的對象存儲目錄,把宿主機的的/mnt/data掛載到容器的/data,這樣保證容器丟失數(shù)據(jù)也不會丟失。
分布式: minio分布式,數(shù)據(jù)恢復(fù),多磁盤就是一個命令的事,看文檔吧。

啟動后地址:http://ip:port/9000,初始用戶都是minioadmin/minioadmin,如果你按照官方的啟動方式,前臺啟動的話就會看到這個信息,如果你是像我一樣后臺啟動的,就去看容器日志吧.

路徑:宿主機 /var/lib/docker/containers/容器id/xxx.log

AWS S3

解釋一下Minio支持AWS S3是什么意思吧。畢竟一開始也差點懵逼了。
AWS S3 就是亞馬遜Simple Storage Service, 
提供標(biāo)準(zhǔn)的對象存儲服務(wù)API接口,說白了就是一個規(guī)范,定義了API接口。
Minio支持AWS S3說的就是這個minio的客戶端MinioClient支持對AWS S3服務(wù)的接口規(guī)范,
你可以使用這個MinioClient來操作實現(xiàn)AWS S3的對象存儲服務(wù)器。

再通俗點講: 開發(fā)人員開發(fā)了mysql數(shù)據(jù)庫,他需要提供一個mysql的驅(qū)動。
現(xiàn)在AWS S3服務(wù)出來了,他也需要一個驅(qū)動,現(xiàn)在MinioClient就可以當(dāng)做是他的驅(qū)動。

MC

mc 就是一個minio的客戶端,用來查看mino的桶,對象等信息的工具。

拿官方的話講就是:

MinIO Client (mc)為ls,cat,cp,mirror,diff,find等UNIX命令提供了一種替代方案。它支持文件系統(tǒng)和兼容Amazon S3的云存儲服務(wù)(AWS Signature v2和v4)。

上面這個v2和v4是等哈要用哦。來都來了還是隨便說一下啊意思一下吧。

這個玩意兒就不用去搞啥容器了。Linux版直接下個mc的工具就行(文檔也有,官方的)。

http://dl.minio.org.cn/client/mc/release/linux-amd64/mc
chmod +x mc

好了,你就可以用了。

先添加一個存儲庫

# 先添加一個存儲庫
mc config host add <ALIAS> <YOUR-S3-ENDPOINT> <YOUR-ACCESS-KEY> <YOUR-SECRET-KEY> [--api API-SIGNATURE]
# eg, s3v4,v4就是上面那個AWS Signature
mc config host add minio http://192.168.2.16 minioadmin minioadmin --api s3v4

配置之后就可以操作了。比如mc ls play,列出所有的的存儲桶。剩下的--help吧,我也沒操作過。

雖然有--help,還是貼個操作指令占占空間,嘻嘻。

ls       列出文件和文件夾。
mb       創(chuàng)建一個存儲桶或一個文件夾。
cat      顯示文件和對象內(nèi)容。
pipe     將一個STDIN重定向到一個對象或者文件或者STDOUT。
share    生成用于共享的URL。
cp       拷貝文件和對象。
mirror   給存儲桶和文件夾做鏡像。
find     基于參數(shù)查找文件。
diff     對兩個文件夾或者存儲桶比較差異。
rm       刪除文件和對象。
events   管理對象通知。
watch    監(jiān)視文件和對象的事件。
policy   管理訪問策略。
config   管理mc配置文件。
update   檢查軟件更新。
version  輸出版本信息。

實際上如果用不到那么細(xì),直接打開界面就看得到所有了,直接在頁面上操作他不香嗎?它香得一P。

minioAdmin.png

服務(wù)搭建起來了就ok了,什么上傳啊,下載啊啥的就那幾個api,自己玩兒吧,官方也有demo,我就直接頁面上操作上傳啥的了。

圖片訪問

文件上傳了,咋訪問呢?

假如這是一個圖片服務(wù)器,那我們再上傳之后,需要一個能直接訪問的url連接,頁面上才能直接展示噻。

minio文件上傳之后,由于我們掛載了容器卷,文件直接就在宿主機上。來嘛,給你看一下。

桶目錄:

/mnt/data
   |-mybucket
   |-newbucket
## 桶下面就直接是文件
mnt_data.png

文件都找打了,直接搭建一個NG作為靜態(tài)服務(wù)器它不香嗎(minio支持壓縮,壓縮的這種不算哈)?

minio自生的訪問方式,可以在頁面上點擊對應(yīng)文件后面的三個點點分享,但是分享最多有效期只有7天。

直接通過minio訪問方式如下,這個涉及到桶的存儲策略。

http://ip:port/<bucketName>/<objectName>訪問。
http://ip:port/mybucket/121.jpg

存儲桶策略BucketPolicy

這個BucketPolicy是個什么玩意兒?我不曉得有沒有人跟我一樣,從最開始的懵逼到知道后覺得傻逼。記錄一下吧,萬一有小伙伴跟我一樣呢。來吧,我直接操作完你就曉得了。

創(chuàng)建bucket并指定policy

創(chuàng)建并指定桶mybucket的策略為*/Read_Only

mybucket_all_read_only.png

創(chuàng)建并指定桶newbucket的策略為12*/Read_Only

newbucket_12_read_only.png

好了,現(xiàn)在我們上傳幾個文件到這兩個桶里面。

mybucket下121.jpg

mybucket_121.png

newbucket下121.jpg,131.jpg

newbucket_images.png

好的,準(zhǔn)備工作結(jié)束了,我們來捋一下我們都做了些啥。

BokcetPolicy 文件
mybucket * / Read_Only 121.jpg
newbucket 12* / Read_Only 121.jpg, 131.jpg

好了,現(xiàn)在打開新的瀏覽器,或者無痕窗口,保證你的minio是未登錄狀態(tài)。

現(xiàn)在依次打開連接查看三個文件。

http://192.168.2.16:9000/mybucket/121.jpg   能打開
http://192.168.2.16:9000/newbucket/121.jpg  能打開
http://192.168.2.16:9000/newbucket/131.jpg  不能打開,需要登錄

這下知道存儲桶的策略了噻。

總結(jié)

bucketPolicy
作用于當(dāng)前bucket上,對當(dāng)前bucket內(nèi)的所有對象有效,實際上就是配置了當(dāng)前桶內(nèi)的對象的訪問策略。

配置為*表示對所有對象有效,占位符,懂得都懂,不解釋了。
newbucket配置了12*為只讀,表示當(dāng)前桶下只有12開頭的對象是可以匿名訪問的
,即直接訪問http://ip:port/newbucket/121.jpg是可以顯示的,
但是無法直接顯示http://ip:port/newbucket/131.jpg

好了,其他的就自己玩兒了吧,官方有很多demo,API啥的代碼我就不寫了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容