MinIO 客户端
MinIO Client mc 命令行工具为 ls、cat、cp、mirror 和 diff
等 UNIX 命令提供了现代替代方案,同时支持文件系统和兼容 Amazon S3 的云存储服务。
mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。
对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。
mc 的语法如下:
mc [GLOBALFLAGS] COMMAND --help
支持的命令列表参见 命令速查。
与 MinIO 服务端的版本对齐
MinIO 客户端与 MinIO 服务端独立发布。
为获得最佳功能与兼容性,建议使用与 MinIO 服务端版本发布时间接近的 MinIO 客户端版本。 例如,使用与 MinIO 服务端同一天发布或晚于 MinIO 服务端版本发布的 MinIO 客户端。
可以安装比 MinIO 服务端 更新的 MinIO 客户端版本。
但如果 MinIO 客户端与 MinIO 服务端的版本偏差过大,可能因差异导致更多告警或错误。
例如,虽然复制相关的核心 S3 API(mc cp)可能保持不变,但某些功能或 flag 仅在客户端与服务端版本对齐时才可用或稳定。
快速开始
1) 安装 mc
在主机上安装 mc 命令行工具。点击与主机操作系统或环境对应的标签页:
以下命令会向系统 PATH 临时 追加一项,以便运行 mc 工具。
若要永久修改系统 PATH,请遵循你的操作系统说明。
或者,你也可以进入 mc 所在目录并运行 ./mc --help。
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 Download Page。
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 环境。请参阅 How to install Golang.
在终端环境中运行以下命令,从源码安装 mc:
go install github.com/minio/mc@latest
mc update 不支持源码安装方式。
2) 为兼容 S3 的服务创建别名
Important
以下示例会临时禁用 bash history,以降低身份认证凭据明文泄露的风险。 这是一项基础安全措施,无法覆盖所有可能的攻击向量。 对于在命令行输入敏感信息,请遵循你所用操作系统的安全最佳实践。
使用 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 endpoint 或 IP 地址。将
ACCESS_KEY和SECRET_KEY替换为该 S3 服务上某个用户的 access key 和 secret key。
将各参数替换为所需值。
如果省略 ACCESS_KEY 和 SECRET_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(例如使用
ping或traceroute)。指定的
ACCESSKEY和SECRETKEY对应 S3 服务上的有效用户。 该用户必须有权限在该服务上执行操作。对于 MinIO 部署,参见 Access Management 获取更多用户访问权限信息。对于其他兼容 S3 的 服务,请参考该服务文档。
命令速查
下表列出了 mc 命令:
命令 |
说明 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
如仅需删除存储桶内容,请改用 |
|
|
|
|
|
|
|
使用 |
|
|
|
|
|
MinIO Client |
|
|
|
|
|
|
|
|
|
|
|
|
配置文件
mc 使用 JSON 格式的配置文件来存储
某些类型的信息,例如每个已配置兼容 S3 服务的
aliases。
在 Linux 和 macOS 上,默认配置文件位置为
~/.mc/config.json。
在 Windows 上,mc 会尝试通过特定环境变量
构造默认文件路径。如果某个变量未设置,mc 会继续
尝试下一个变量。如果所有尝试都失败,mc 会返回错误。
下列列表按 mc 检查顺序说明了可能的文件路径位置:
HOME\.mc\config.jsonUSERPROFILE\.mc\config.jsonHOMEDRIVE+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
创建新的 alias 时,MinIO Client 会拉取对端证书、计算公钥指纹,并询问用户是否接受该部署的证书。 如果你决定信任该证书,MinIO Client 会将其添加到上述证书颁发机构路径。
Note
在测试环境中,你可以通过传入 --insecure flag,跳过部分 MinIO Client 命令的证书检查。
模式匹配
某些命令和 flag 支持模式匹配。 启用后,模式可包含以下任一通配符用于字符替换:
*表示要匹配的一串字符,可位于中间或末尾。?表示单个字符。
例如,可参考以下通配符使用示例及其结果。
模式 |
文本 |
匹配结果 |
|---|---|---|
|
ab |
匹配 |
|
abd |
不匹配 |
|
abcd |
匹配 |
|
abxxc |
匹配 |
|
abxc |
匹配 |
|
abxc |
匹配 |
|
abc |
匹配 |
|
abcxdd |
不匹配 |
全局选项
所有 commands 都支持以下全局选项。 你也可以使用 Environment Variables 来定义其中部分选项。
- --config-dir
指向
JSON格式配置文件的路径, mc 使用该文件存储数据。有关 mc 如何使用配置文件的更多信息,请参见 配置文件。或者,设置环境变量
MC_CONFIG_DIR。
- --disable-pager, --dp
New in version mc: RELEASE.2024-04-29T09-56-05Z
在 CLI 中禁用 MinIO Client 的分页功能。 使用后,输出会直接打印到原始
STDOUT。
- --insecure
禁用 TLS/SSL 证书校验。允许与证书无效的 服务器建立 TLS 连接。对不受信任的 S3 主机使用该 选项时请谨慎。
或者,设置环境变量
MC_INSECURE。
- --json
启用 JSON lines 格式输出到 控制台。
例如,以下操作会为
mc ls命令增加 JSON Lines 输出:mc --json ls play
或者,设置环境变量
MC_JSON。
- --no-color
禁用控制台输出的内置配色主题。适用于 dumb 终端。
或者,设置环境变量
MC_NO_COLOR。
- --quiet
抑制控制台输出。
或者,设置环境变量
MC_QUIET。
- --resolve
New in version 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'
可重复该 flag 多次以添加更多自定义 DNS 映射。
- --version
显示
mc的当前版本。