官方文檔地址:http://docs.minio.org.cn/docs/master/minio-client-complete-guide
下載,添加雲存儲服務參考這篇文章:https://www.cnblogs.com/sanduzxcvbnm/p/15988907.html
6. 全局參數
參數 [--debug]
Debug參數開啟控制台輸出debug信息。
示例:輸出ls命令的詳細debug信息。
mc --debug ls play
mc: <DEBUG> GET / HTTP/1.1
Host: play.min.io
User-Agent: MinIO (darwin; amd64) minio-go/1.0.1 mc/2016-04-01T00:22:11Z
Authorization: AWS4-HMAC-SHA256 Credential=**REDACTED**/20160408/us-east-1/s3/aws4_request, SignedHeaders=expect;host;x-amz-content-sha256;x-amz-date, Signature=**REDACTED**
Expect: 100-continue
X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
X-Amz-Date: 20160408T145236Z
Accept-Encoding: gzip
mc: <DEBUG> HTTP/1.1 200 OK
Transfer-Encoding: chunked
Accept-Ranges: bytes
Content-Type: text/xml; charset=utf-8
Date: Fri, 08 Apr 2016 14:54:55 GMT
Server: MinIO/DEVELOPMENT.2016-04-07T18-53-27Z (linux; amd64)
Vary: Origin
X-Amz-Request-Id: HP30I0W2U49BDBIO
mc: <DEBUG> Response Time: 1.220112837s
[...]
[2016-04-08 03:56:14 IST] 0B albums/
[2016-04-04 16:11:45 IST] 0B backup/
[2016-04-01 20:10:53 IST] 0B deebucket/
[2016-03-28 21:53:49 IST] 0B guestbucket/
參數 [--json]
JSON參數啟用JSON格式的輸出。
示例:列出MinIO play服務的所有存儲桶。
mc --json ls play
{"status":"success","type":"folder","lastModified":"2016-04-08T03:56:14.577+05:30","size":0,"key":"albums/"}
{"status":"success","type":"folder","lastModified":"2016-04-04T16:11:45.349+05:30","size":0,"key":"backup/"}
{"status":"success","type":"folder","lastModified":"2016-04-01T20:10:53.941+05:30","size":0,"key":"deebucket/"}
{"status":"success","type":"folder","lastModified":"2016-03-28T21:53:49.217+05:30","size":0,"key":"guestbucket/"}
參數 [--no-color]
這個參數禁用顏色主題。對於一些比較老的終端有用。
參數 [--quiet]
這個參數關閉控制台日志輸出。
參數 [--config-dir]
這個參數參數自定義的配置文件路徑。
參數 [ --insecure]
跳過SSL證書驗證。
7. 命令
ls - 列出存儲桶和對象 mb - 創建存儲桶 cat - 合並對象
cp - 拷貝對象 rm - 刪除對象 pipe - Pipe到一個對象
share - 共享 mirror - 存儲桶鏡像 find - 查找文件和對象
diff - 比較存儲桶差異 policy - 給存儲桶或前綴設置訪問策略
config - 管理配置文件 watch - 事件監聽 events - 管理存儲桶事件
update - 管理軟件更新 version - 顯示版本信息
ls命令 - 列出對象
ls命令列出文件、對象和存儲桶。使用--incomplete flag可列出未完整拷貝的內容。
用法:
mc ls [FLAGS] TARGET [TARGET ...]
FLAGS:
--help, -h 顯示幫助。
--recursive, -r 遞歸。
--incomplete, -I 列出未完整上傳的對象。
示例: 列出所有https://play.min.io上的存儲桶。
mc ls play
[2016-04-08 03:56:14 IST] 0B albums/
[2016-04-04 16:11:45 IST] 0B backup/
[2016-04-01 20:10:53 IST] 0B deebucket/
[2016-03-28 21:53:49 IST] 0B guestbucket/
[2016-04-08 20:58:18 IST] 0B mybucket/
mb命令 - 創建存儲桶
mb命令在對象存儲上創建一個新的存儲桶。在文件系統,它就和mkdir -p命令是一樣的。存儲桶相當於文件系統中的磁盤或掛載點,不應視為文件夾。MinIO對每個用戶創建的存儲桶數量沒有限制。 在Amazon S3上,每個帳戶被限制為100個存儲桶。有關更多信息,請參閱S3上的存儲桶限制和限制 。
用法:
mc mb [FLAGS] TARGET [TARGET...]
FLAGS:
--help, -h 顯示幫助。
--region "us-east-1" 指定存儲桶的region,默認是‘us-east-1’.
示例:在https://play.min.io上創建一個名叫"mybucket"的存儲桶。
mc mb play/mybucket
Bucket created successfully ‘play/mybucket’.
cat命令 - 合並對象
cat命令將一個文件或者對象的內容合並到另一個上。你也可以用它將對象的內容輸出到stdout。
用法:
mc cat [FLAGS] SOURCE [SOURCE...]
FLAGS:
--help, -h 顯示幫助。
示例: 顯示myobject.txt文件的內容
mc cat play/mybucket/myobject.txt
Hello MinIO!!
pipe命令 - Pipe到對象
pipe命令拷貝stdin里的內容到目標輸出,如果沒有指定目標輸出,則輸出到stdout。
用法:
mc pipe [FLAGS] [TARGET]
FLAGS:
--help, -h 顯示幫助。
示例: 將MySQL數據庫dump文件輸出到Amazon S3。
mysqldump -u root -p ******* accountsdb | mc pipe s3/sql-backups/backups/accountsdb-oct-9-2015.sql
cp命令 - 拷貝對象
cp命令拷貝一個或多個源文件目標輸出。所有到對象存儲的拷貝操作都進行了MD4SUM checkSUM校驗。可以從故障點恢復中斷或失敗的復制操作。
用法:
mc cp [FLAGS] SOURCE [SOURCE...] TARGET
FLAGS:
--help, -h 顯示幫助。
--recursive, -r 遞歸拷貝。
示例: 拷貝一個文本文件到對象存儲。
mc cp myobject.txt play/mybucket
myobject.txt: 14 B / 14 B ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ 100.00 % 41 B/s 0
rm命令 - 刪除存儲桶和對象。
使用rm命令刪除文件對象或者存儲桶。
用法:
mc rm [FLAGS] TARGET [TARGET ...]
FLAGS:
--help, -h 顯示幫助。
--recursive, -r 遞歸刪除。
--force 強制執行刪除操作。
--prefix 刪除批配這個前綴的對象。
--incomplete, -I 刪除未完整上傳的對象。
--fake 模擬一個假的刪除操作。
--stdin 從STDIN中讀對象列表。
--older-than value 刪除N天前的對象(默認是0天)。
示例: 刪除一個對象。
mc rm play/mybucket/myobject.txt
Removed ‘play/mybucket/myobject.txt’.
示例:刪除一個存儲桶並遞歸刪除里面所有的內容。由於這個操作太危險了,你必須傳--force參數指定強制刪除。
mc rm --recursive --force play/myobject
Removed ‘play/myobject/newfile.txt’.
Removed 'play/myobject/otherobject.txt’.
示例: 從mybucket里刪除所有未完整上傳的對象。
mc rm --incomplete --recursive --force play/mybucket
Removed ‘play/mybucket/mydvd.iso’.
Removed 'play/mybucket/backup.tgz’.
示例: 刪除一天前的對象。
mc rm --force --older-than=1 play/mybucket/oldsongs
share命令 - 共享
share命令安全地授予上傳或下載的權限。此訪問只是臨時的,與遠程用戶和應用程序共享也是安全的。如果你想授予永久訪問權限,你可以看看mc policy命令。
生成的網址中含有編碼后的訪問認證信息,任何企圖篡改URL的行為都會使訪問無效。想了解這種機制是如何工作的,請參考Pre-Signed URL技術。
用法:
mc share [FLAGS] COMMAND
FLAGS:
--help, -h 顯示幫助。
COMMANDS:
download 生成有下載權限的URL。
upload 生成有上傳權限的URL。
list 列出先前共享的對象和文件夾。
子命令share download - 共享下載
share download命令生成不需要access key和secret key即可下載的URL,過期參數設置成最大有效期(不大於7天),過期之后權限自動回收。
用法:
mc share download [FLAGS] TARGET [TARGET...]
FLAGS:
--help, -h 顯示幫助。
--recursive, -r 遞歸共享所有對象。
--expire, -E "168h" 設置過期時限,NN[h|m|s]。
示例: 生成一個對一個對象有4小時訪問權限的URL。
mc share download --expire 4h play/mybucket/myobject.txt
URL: https://play.min.io/mybucket/myobject.txt
Expire: 0 days 4 hours 0 minutes 0 seconds
Share: https://play.min.io/mybucket/myobject.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=Q3AM3UQ867SPQQA43P2F%2F20160408%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20160408T182008Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=1527fc8f21a3a7e39ce3c456907a10b389125047adc552bcd86630b9d459b634
子命令share upload - 共享上傳
share upload命令生成不需要access key和secret key即可上傳的URL。過期參數設置成最大有效期(不大於7天),過期之后權限自動回收。 Content-type參數限制只允許上傳指定類型的文件。
用法:
mc share upload [FLAGS] TARGET [TARGET...]
FLAGS:
--help, -h 顯示幫助。
--recursive, -r 遞歸共享所有對象。
--expire, -E "168h" 設置過期時限,NN[h|m|s].
示例: 生成一個curl命令,賦予上傳到play/mybucket/myotherobject.txt的權限。
mc share upload play/mybucket/myotherobject.txt
URL: https://play.min.io/mybucket/myotherobject.txt
Expire: 7 days 0 hours 0 minutes 0 seconds
Share: curl https://play.min.io/mybucket -F x-amz-date=20160408T182356Z -F x-amz-signature=de343934bd0ba38bda0903813b5738f23dde67b4065ea2ec2e4e52f6389e51e1 -F bucket=mybucket -F policy=eyJleHBpcmF0aW9uIjoiMjAxNi0wNC0xNVQxODoyMzo1NS4wMDdaIiwiY29uZGl0aW9ucyI6W1siZXEiLCIkYnVja2V0IiwibXlidWNrZXQiXSxbImVxIiwiJGtleSIsIm15b3RoZXJvYmplY3QudHh0Il0sWyJlcSIsIiR4LWFtei1kYXRlIiwiMjAxNjA0MDhUMTgyMzU2WiJdLFsiZXEiLCIkeC1hbXotYWxnb3JpdGhtIiwiQVdTNC1ITUFDLVNIQTI1NiJdLFsiZXEiLCIkeC1hbXotY3JlZGVudGlhbCIsIlEzQU0zVVE4NjdTUFFRQTQzUDJGLzIwMTYwNDA4L3VzLWVhc3QtMS9zMy9hd3M0X3JlcXVlc3QiXV19 -F x-amz-algorithm=AWS4-HMAC-SHA256 -F x-amz-credential=Q3AM3UQ867SPQQA43P2F/20160408/us-east-1/s3/aws4_request -F key=myotherobject.txt -F file=@<FILE>
子命令share list - 列出之前的共享
share list列出沒未過期的共享URL。
用法:
mc share list COMMAND
COMMAND:
upload: 列出先前共享的有上傳權限的URL。
download: 列出先前共享的有下載權限的URL。
mirror命令 - 存儲桶鏡像
mirror命令和rsync類似,只不過它是在文件系統和對象存儲之間做同步。
用法:
mc mirror [FLAGS] SOURCE TARGET
FLAGS:
--help, -h 顯示幫助。
--force 強制覆蓋已經存在的目標。
--fake 模擬一個假的操作。
--watch, -w 監聽改變並執行鏡像操作。
--remove 刪除目標上的外部的文件。
示例: 將一個本地文件夾鏡像到https://play.min.io上的'mybucket'存儲桶。
mc mirror localdir/ play/mybucket
localdir/b.txt: 40 B / 40 B ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃ 100.00 % 73 B/s 0
示例: 持續監聽本地文件夾修改並鏡像到https://play.min.io上的'mybucket'存儲桶。
mc mirror -w localdir play/mybucket
localdir/new.txt: 10 MB / 10 MB ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃ 100.00 % 1 MB/s 15s
find命令 - 查找文件和對象
find命令通過指定參數查找文件,它只列出滿足條件的數據。
用法:
mc find PATH [FLAGS]
FLAGS:
--help, -h 顯示幫助。
--exec value 為每個匹配對象生成一個外部進程(請參閱FORMAT)
--name value 查找匹配通配符模式的對象。
...
...
示例: 持續從s3存儲桶中查找所有jpeg圖像,並復制到minio "play/bucket"存儲桶
mc find s3/bucket --name "*.jpg" --watch --exec "mc cp {} play/bucket"
diff命令 - 顯示差異
diff命令計算兩個目錄之間的差異。它只列出缺少的或者大小不同的內容。
它不比較內容,所以可能的是,名稱相同,大小相同但內容不同的對象沒有被檢測到。這樣,它可以在不同站點或者大量數據的情況下快速比較。
用法:
mc diff [FLAGS] FIRST SECOND
FLAGS:
--help, -h 顯示幫助。
示例: 比較一個本地文件夾和一個遠程對象存儲服務
mc diff localdir play/mybucket
‘localdir/notes.txt’ and ‘https://play.min.io/mybucket/notes.txt’ - only in first.
watch命令 - 監聽文件和對象存儲事件。
watch命令提供了一種方便監聽對象存儲和文件系統上不同類型事件的方式。
用法:
mc watch [FLAGS] PATH
FLAGS:
--events value 過濾不同類型的事件,默認是所有類型的事件 (默認: "put,delete,get")
--prefix value 基於前綴過濾事件。
--suffix value 基於后綴過濾事件。
--recursive 遞歸方式監聽事件。
--help, -h 顯示幫助。
示例: 監聽對象存儲的所有事件
mc watch play/testbucket
[2016-08-18T00:51:29.735Z] 2.7KiB ObjectCreated https://play.min.io/testbucket/CONTRIBUTING.md
[2016-08-18T00:51:29.780Z] 1009B ObjectCreated https://play.min.io/testbucket/MAINTAINERS.md
[2016-08-18T00:51:29.839Z] 6.9KiB ObjectCreated https://play.min.io/testbucket/README.md
示例: 監聽本地文件夾的所有事件
mc watch ~/Photos
[2016-08-17T17:54:19.565Z] 3.7MiB ObjectCreated /home/minio/Downloads/tmp/5467026530_a8611b53f9_o.jpg
[2016-08-17T17:54:19.565Z] 3.7MiB ObjectCreated /home/minio/Downloads/tmp/5467026530_a8611b53f9_o.jpg
...
[2016-08-17T17:54:19.565Z] 7.5MiB ObjectCreated /home/minio/Downloads/tmp/8771468997_89b762d104_o.jpg
events命令 - 管理存儲桶事件通知。
events提供了一種方便的配置存儲桶的各種類型事件通知的方式。MinIO事件通知可以配置成使用 AMQP,Redis,ElasticSearch,NATS和PostgreSQL服務。MinIO configuration提供了如何配置的更多細節。
用法:
mc events COMMAND [COMMAND FLAGS | -h] [ARGUMENTS...]
COMMANDS:
add 添加一個新的存儲桶通知。
remove 刪除一個存儲桶通知。使用'--force'可以刪除所有存儲桶通知。
list 列出存儲桶通知。
FLAGS:
--help, -h 顯示幫助。
示例: 列出所有存儲桶通知。
mc events list play/andoria
MyTopic arn:minio:sns:us-east-1:1:TestTopic s3:ObjectCreated:*,s3:ObjectRemoved:* suffix:.jpg
示例: 添加一個新的'sqs'通知,僅接收ObjectCreated事件。
mc events add play/andoria arn:minio:sqs:us-east-1:1:your-queue --events put
示例: 添加一個帶有過濾器的'sqs'通知。
給sqs通知添加prefix和suffix過濾規則。
mc events add play/andoria arn:minio:sqs:us-east-1:1:your-queue --prefix photos/ --suffix .jpg
示例: 刪除一個'sqs'通知
mc events remove play/andoria arn:minio:sqs:us-east-1:1:your-queue
policy命令 - 管理存儲桶策略
管理匿名訪問存儲桶和其內部內容的策略。
用法:
mc policy [FLAGS] PERMISSION TARGET
mc policy [FLAGS] TARGET
mc policy list [FLAGS] TARGET
PERMISSION:
Allowed policies are: [none, download, upload, public].
FLAGS:
--help, -h 顯示幫助。
示例: 顯示當前匿名存儲桶策略
顯示當前mybucket/myphotos/2020/子文件夾的匿名策略。
mc policy play/mybucket/myphotos/2020/
Access permission for ‘play/mybucket/myphotos/2020/’ is ‘none’
示例:設置可下載的匿名存儲桶策略。
設置mybucket/myphotos/2020/子文件夾可匿名下載的策略。現在,這個文件夾下的對象可被公開訪問。比如:mybucket/myphotos/2020/yourobjectname可通過這個URL https://play.min.io/mybucket/myphotos/2020/yourobjectname訪問。
mc policy set download play/mybucket/myphotos/2020/
Access permission for ‘play/mybucket/myphotos/2020/’ is set to 'download'
示例:刪除當前的匿名存儲桶策略
刪除所有mybucket/myphotos/2020/這個子文件夾下的匿名存儲桶策略。
mc policy set none play/mybucket/myphotos/2020/
Access permission for ‘play/mybucket/myphotos/2020/’ is set to 'none'
config命令 - 管理配置文件
config host命令提供了一個方便地管理~/.mc/config.json配置文件中的主機信息的方式,你也可以用文本編輯器手動修改這個配置文件。
用法:
mc config host COMMAND [COMMAND FLAGS | -h] [ARGUMENTS...]
COMMANDS:
add, a 添加一個新的主機到配置文件。
remove, rm 從配置文件中刪除一個主機。
list, ls 列出配置文件中的主機。
FLAGS:
--help, -h 顯示幫助。
示例: 管理配置文件
添加MinIO服務的access和secret key到配置文件,注意,shell的history特性可能會記錄這些信息,從而帶來安全隱患。在bash shell,使用set -o和set +o來關閉和開啟history特性。
set +o history
mc config host add myminio http://localhost:9000 OMQAGGOL63D7UNVQFY8X GcY5RHNmnEWvD/1QxD3spEIGj+Vt9L7eHaAaBTkJ
set -o history
update命令 - 軟件更新
從https://dl.min.io檢查軟件更新。Experimental標志會檢查unstable實驗性的版本,通常用作測試用途。
用法:
mc update [FLAGS]
FLAGS:
--quiet, -q 關閉控制台輸出。
--json 使用JSON格式輸出。
--help, -h 顯示幫助。
示例: 檢查更新
mc update
You are already running the most recent version of ‘mc’.
version命令 - 顯示版本信息
顯示當前安裝的mc版本。
用法:
mc version [FLAGS]
FLAGS:
--quiet, -q 關閉控制台輸出。
--json 使用JSON格式輸出。
--help, -h 顯示幫助。
示例: 輸出mc版本。
mc version
Version: 2016-04-01T00:22:11Z
Release-tag: RELEASE.2016-04-01T00-22-11Z
Commit-id: 12adf3be326f5b6610cdd1438f72dfd861597fce