文件

MinIO 用戶端

MinIO Client mc 命令列工具提供了一種現代化的替代方案,以取代 UNIX 命令,如 lscatcpmirrordiff,並支援檔案系統和 Amazon S3 相容的雲端儲存服務。

mc 命令列工具的建置旨在與 AWS S3 API 相容,並已使用 MinIO 和 AWS S3 進行測試,以確保其預期的功能和行為。

MinIO 對於其他 S3 相容服務不提供任何保證,因為它們的 S3 API 實作是未知的,因此不受支援。雖然 mc 命令可能會如文件所述運作,但任何此類使用行為的風險由您自行承擔。

mc 的語法如下

mc [GLOBALFLAGS] COMMAND --help

請參閱 命令快速參考 以取得支援的命令列表。

與 MinIO 伺服器的版本對齊

MinIO Client 的發佈與 MinIO Server 分開。

為了獲得最佳功能和相容性,請使用與您的 MinIO Server 版本接近的 MinIO Client 版本。例如,與您的 MinIO Server 版本同一天或之後發佈的 MinIO Client。

您可以安裝比 MinIO Server 版本更新的 MinIO Client 版本。但是,如果 MinIO Client 版本與 MinIO Server 版本差異過大,您可能會因為差異而看到更多警告或錯誤。例如,雖然圍繞複製的核心 S3 API(mc cp)可能保持不變,但某些功能或旗標可能只有在用戶端和伺服器版本對齊時才可用或穩定。

快速入門

1) 安裝 mc

mc 命令列工具安裝到主機上。點擊與主機作業系統或環境相對應的標籤

以下命令會為您的系統 PATH 添加暫時的擴展,以便執行 mc 公用程式。請參閱您的作業系統說明,以永久修改您的系統 PATH。

或者,導覽至父資料夾並執行 ./mc --help 來執行 mc

64 位元 Intel

curl https://dl.min.io/client/mc/release/linux-amd64/mc \
  --create-dirs \
  -o $HOME/minio-binaries/mc

chmod +x $HOME/minio-binaries/mc
export PATH=$PATH:$HOME/minio-binaries/

mc --help

64 位元 PPC

curl https://dl.min.io/client/mc/release/linux-ppc64le/mc \
  --create-dirs \
  -o ~/minio-binaries/mc

chmod +x $HOME/minio-binaries/mc
export PATH=$PATH:$HOME/minio-binaries/

mc --help

ARM64

curl https://dl.min.io/client/mc/release/linux-arm64/mc \
  --create-dirs \
  -o ~/minio-binaries/mc

chmod +x $HOME/minio-binaries/mc
export PATH=$PATH:$HOME/minio-binaries/

mc --help

從 MinIO 下載頁面安裝

MinIO 並未正式將其二進位檔案發佈到常見的 Linux 儲存庫或套件管理員(Ubuntu、RHEL、Archlinux/AUR)。MinIO 二進位檔案的唯一官方來源是 MinIO 下載頁面

MinIO 不建議透過套件管理員安裝,因為上游儲存庫可能會安裝不正確的套件或重新命名的套件。

所有文件都假設僅透過下載頁面安裝官方 mc 用戶端二進位檔案,且二進位檔案名稱未變更。

brew install minio/stable/mc
mc --help

在瀏覽器中開啟以下檔案

https://dl.min.io/client/mc/release/windows-amd64/mc.exe

透過雙擊來執行該檔案,在命令提示字元或 powershell 中執行以下命令

\path\to\mc.exe --help

從來源安裝適用於開發人員和進階使用者,並且需要可運作的 Golang 環境。請參閱 如何安裝 Golang

在終端環境中執行以下命令,以從來源安裝 mc

go install github.com/minio/mc@latest

mc update 不支援基於來源的安裝。

2) 為 S3 相容服務建立別名

重要

以下範例會暫時停用 bash 歷程記錄,以降低驗證憑證以純文字洩漏的風險。這是一個基本安全措施,並不能減輕所有可能的攻擊媒介。請參閱您的作業系統的最佳安全實務,以在命令列中輸入敏感資訊。

使用 mc alias set 命令將 Amazon S3 相容服務新增至 mc 組態

bash +o history
mc alias set ALIAS HOSTNAME ACCESS_KEY SECRET_KEY
bash -o history
  • ALIAS 取代為與 S3 服務關聯的名稱。mc 命令通常需要 ALIAS 作為引數,以識別要對哪個 S3 服務執行。

  • HOSTNAME 取代為 S3 服務的 URL 端點或 IP 位址。

  • ACCESS_KEYSECRET_KEY 取代為 S3 服務上使用者的存取金鑰和密碼金鑰。

將每個引數取代為所需的值。如果您省略 ACCESS_KEYSECRET_KEY,該命令會提示您在 CLI 中輸入這些值。

以下每個標籤都包含提供者特定的範例

mc alias set myminio https://minioserver.example.net ACCESS_KEY SECRET_KEY
mc alias set myS3 https://s3.{your-region-code}.amazonaws.com/endpoint ACCESS_KEY SECRET_KEY
mc alias set myGCS https://storage.googleapis.com/endpoint ACCESS_KEY SECRET_KEY

3) 測試連線

使用 mc admin info 命令測試與新新增的 MinIO 部署的連線

mc admin info myminio

如果成功,該命令會傳回 S3 服務的相關資訊。如果失敗,請檢查以下每一項

  • 主機具有與 S3 服務 URL 的連線能力(即使用 pingtraceroute)。

  • 指定的 ACCESSKEYSECRETKEY 對應到 S3 服務上的使用者。使用者必須具有對服務執行動作的權限。

    對於 MinIO 部署,請參閱 存取管理,以取得有關使用者存取權限的更多資訊。對於其他 S3 相容服務,請參閱該服務的文件。

命令快速參考

下表列出 mc 命令

注意

MinIO Client 還包含用於管理 MinIO 部署的管理擴充功能。請參閱 mc admin 以取得更完整的文件。

下表不包含這些命令。

命令

描述

mc alias 命令提供了一個方便的介面,用於管理 mc 可以連線和執行操作的 S3 相容主機列表。

mc anonymous 命令支援設定或移除儲存貯體及其內容的匿名 政策。具有匿名政策的儲存貯體允許公開存取,其中用戶端可以在沒有 驗證的情況下執行政策授予的任何動作。

mc batch 命令可讓您在 MinIO 部署上執行一或多個工作任務。

mc cat

mc cat 命令會將檔案或物件的內容串連到另一個檔案或物件。您也可以使用此命令將指定檔案或物件的內容顯示到 STDOUTcat 的功能與 cat 類似。

mc cp

mc cp 命令會將物件複製到 MinIO 部署或從 MinIO 部署複製物件,其中來源可以是 MinIO 本機檔案系統。

mc diff

mc du

mc find

mc get

mc head

mc ls

mc mb

mc mirror

mc mv

mc od

mc ping

mc pipe

mc put

mc rb

mc ready

mc ready 命令會檢查叢集的狀態,以及叢集是否具有 readwrite 的仲裁。

mc replicate 命令設定和管理 MinIO 部署的 伺服器端儲存桶複寫,包括 主動-主動複寫設定重新同步

mc retention 命令會設定儲存桶中一個或多個物件的 一次寫入,多次讀取 (WORM) 鎖定 設定。您也可以設定儲存桶的預設物件鎖定設定,其中所有沒有明確物件鎖定設定的物件都會繼承儲存桶的預設值。

mc rm

mc rm 命令會從 MinIO 部署中的儲存桶移除物件。若要完全移除儲存桶,請改用 mc rb

使用 mc share 命令來管理預先簽署的 URL,以便將物件下載和上傳到 MinIO 儲存桶。

mc sql

mc sql 命令提供 S3 Select 介面,用於在指定的 MinIO 部署中對物件執行 SQL 查詢。

mc stat

mc stat 命令會顯示 MinIO 儲存桶中物件的資訊,包括物件中繼資料。您也可以使用它來擷取儲存桶中繼資料。

MinIO 用戶端 mc support 命令提供用於分析部署健全狀況或效能以及執行診斷的工具。您也可以上傳產生的健全狀況報告,以供 MinIO 工程部門進一步分析。

mc tag 命令會新增、移除和列出與儲存桶或物件相關聯的標籤。

mc tree

mc tree 命令會以樹狀結構格式列出 MinIO 儲存桶內的所有前置詞。此命令可選擇性支援列出每個前置詞內,包括儲存桶根目錄內的所有物件。

mc undo

mc undo 命令會反轉指定路徑中由於 PUTDELETE 作業所造成的變更。

mc update

mc update 命令會將 mc 二進位檔案自動更新至最新的穩定版本。

mc version 命令會啟用、停用和擷取 MinIO 儲存桶的版本控制狀態。

mc watch

mc watch 命令會監看指定 MinIO 儲存桶或本機檔案系統路徑上的事件。對於 S3 服務,請使用 mc event add 在與 S3 相容的服務上設定儲存桶事件通知。

組態檔

mc 使用 JSON 格式的組態檔,用於儲存特定類型的資訊,例如每個已設定的與 S3 相容之服務的 別名

對於 Linux 和 macOS,預設組態檔位置為 ~/.mc/config.json

對於 Windows,mc 會嘗試透過嘗試特定的環境變數來建構預設檔案路徑。如果變數未設定,mc 會移至下一個變數。如果所有嘗試都失敗,mc 會傳回錯誤。以下清單會依 mc 檢查順序描述每個可能的檔案路徑位置

  1. HOME\.mc\config.json

  2. USERPROFILE\.mc\config.json

  3. HOMEDRIVE+HOMEPATH\.mc\config.json

您可以使用 --config-dir

憑證

MinIO 用戶端會將部署的憑證和 CA 儲存到下列路徑

Linux、macOS 和其他類 Unix 系統

~/.mc/certs/ # certificates
~/.mc/certs/CAs/ # Certificate Authorities

Windows 系統

C:\Users\[username]\mc\certs\ # certificates
C:\Users\[username]\mc\certs\CAs\ # Certificate Authorities

建立新的 別名時,MinIO 用戶端會提取對等憑證、計算公開金鑰指紋,並詢問使用者是否接受部署的憑證。如果您決定信任憑證,MinIO 用戶端會將憑證新增至上面列出的憑證授權單位路徑。

注意

在測試環境中,您可以傳遞 --insecure 旗標,略過所選 MinIO 用戶端命令的憑證檢查。

模式比對

某些命令和旗標允許模式比對。啟用時,模式可以包含下列其中一個萬用字元來進行字元取代

  • * 代表要比對的字串,無論是在中間或結尾。

  • ? 代表單一字元。

例如,請參閱下列範例,以瞭解萬用字元用法及其結果。

模式

文字

比對結果

abc*

ab

比對

abc*

abd

不比對

abc*c

abcd

比對

ab*??d

abxxc

比對

ab*??d

abxc

比對

ab??d

abxc

比對

ab??d

abc

比對

ab??d

abcxdd

不比對

全域選項

所有 命令 都支援下列全域選項。您也可以使用 環境變數定義其中一些選項。

--config-dir

用於儲存資料的 JSON 格式設定檔的路徑。mc 如何使用設定檔的詳細資訊,請參閱設定檔

或者,設定環境變數 MC_CONFIG_DIR

--debug

啟用詳細輸出至主控台。

例如,以下操作會將詳細輸出加入 mc ls 指令

mc --debug ls play

或者,設定環境變數 MC_DEBUG

--disable-pager, --dp

新增於 mc 版本:RELEASE.2024-04-29T09-56-05Z

停用 CLI 中 MinIO Client 的分頁器功能。使用時,輸出會改為列印到原始的 STDOUT

--insecure

停用 TLS/SSL 憑證驗證。允許 TLS 連線到具有無效憑證的伺服器。對不受信任的 S3 主機使用此選項時請謹慎。

或者,設定環境變數 MC_INSECURE

--json

啟用 JSON lines 格式的輸出至主控台。

例如,以下操作會將 JSON Lines 輸出加入 mc ls 指令

mc --json ls play

或者,設定環境變數 MC_JSON

--no-color

停用主控台輸出的內建色彩主題。適用於啞終端機。

或者,設定環境變數 MC_NO_COLOR

--quiet

抑制主控台輸出。

或者,設定環境變數 MC_QUIET

--resolve

新增於 mc 版本:RELEASE.2024-08-13T05-33-17Z

建立自訂 DNS 對應,將 HOST 解析為指定的 IP 位址。

使用以下語法

--resolve HOST[:PORT]=IP

例如

mc alias set --resolve myminio.example.com:9000=192.168.188.118 'myminio' 'https://myminio.example.com:9000' 'miniouser' 'miniosecret'

重複使用此旗標多次以新增其他自訂 DNS 對應。

--version

顯示 mc 的目前版本。

--help
選用

在終端機上顯示指令用法的摘要。