SpringBoot實戰電商項目mall(25k+star)地址:github.com/macrozheng/…html
對象存儲服務能夠用來存儲各種文件,mall
項目中的圖片存儲採用的是OSS,今天咱們來說下如何本身搭建一個對象存儲服務來存儲圖片。git
MinIO 是一款基於Go語言的高性能對象存儲服務,在Github上已有19K+Star。它採用了Apache License v2.0開源協議,很是適合於存儲大容量非結構化的數據,例如圖片、視頻、日誌文件、備份數據和容器/虛擬機鏡像等。 本文將使用 MinIO 來自建一個對象存儲服務用於存儲圖片。github
MinIO的安裝方式有不少,這裏咱們使用它在Docker環境下的安裝方式。docker
docker pull minio/minio
複製代碼
docker run -p 9090:9000 --name minio \
-v /mydata/minio/data:/data \
-v /mydata/minio/config:/root/.minio \
-d minio/minio server /data
複製代碼
minioadmin
:http://192.168.6.132:9090經過使用MinIO的網頁端便可完成文件的上傳下載功能,下面咱們以圖片上傳下載爲例來演示下該功能。bash
*.*
,不然會沒法訪問;雖然MinIO的網頁端管理已經很方便了,可是官網仍是給咱們提供了基於命令行的客戶端MinIO Client(簡稱mc),下面咱們來說講它的使用方法。session
下面咱們先來熟悉下mc的命令,這些命令和Linux中的命令有不少類似之處。ide
命令 | 做用 |
---|---|
ls | 列出文件和文件夾 |
mb | 建立一個存儲桶或一個文件夾 |
cat | 顯示文件和對象內容 |
pipe | 將一個STDIN重定向到一個對象或者文件或者STDOUT |
share | 生成用於共享的URL |
cp | 拷貝文件和對象 |
mirror | 給存儲桶和文件夾作鏡像 |
find | 基於參數查找文件 |
diff | 對兩個文件夾或者存儲桶比較差別 |
rm | 刪除文件和對象 |
events | 管理對象通知 |
watch | 監聽文件和對象的事件 |
policy | 管理訪問策略 |
session | 爲cp命令管理保存的會話 |
config | 管理mc配置文件 |
update | 檢查軟件更新 |
version | 輸出版本信息 |
因爲MinIO服務端中並無自帶客戶端,因此咱們須要安裝配置完客戶端後才能使用,這裏以Docker環境下的安裝爲例。性能
docker pull minio/mc
複製代碼
docker run -it --entrypoint=/bin/sh minio/mc
複製代碼
mc config host add <ALIAS> <YOUR-S3-ENDPOINT> <YOUR-ACCESS-KEY> <YOUR-SECRET-KEY> <API-SIGNATURE>
複製代碼
mc config host add minio http://192.168.6.132:9090 minioadmin minioadmin S3v4
複製代碼
# 查看存儲桶
mc ls minio
# 查看存儲桶中存在的文件
mc ls minio/blog
複製代碼
test
的存儲桶:mc mb minio/test
複製代碼
avatar.png
文件的下載路徑:mc share download minio/blog/avatar.png
複製代碼
blog
存儲桶中的png文件:mc find minio/blog --name "*.png"
複製代碼
test
存儲桶的訪問權限爲只讀
:# 目前能夠設置這四種權限:none, download, upload, public
mc policy set download minio/test/
# 查看存儲桶當前權限
mc policy list minio/test/
複製代碼
詳細瞭解MinIO能夠參考官方文檔:docs.min.io/cn/minio-qu…學習
mall項目全套學習教程連載中,關注公衆號第一時間獲取。ui