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 Server 的版本对齐
MinIO Client 与 MinIO Server 独立发布。
为获得最佳功能与兼容性,建议使用与 MinIO Server 版本发布时间接近的 MinIO Client 版本。 例如,使用与 MinIO Server 同一天发布或晚于 MinIO Server 版本发布的 MinIO Client。
可以安装比 MinIO Server 更新的 MinIO Client 版本。
但如果 MinIO Client 与 MinIO Server 的版本偏差过大,可能因差异导致更多告警或错误。
例如,虽然复制相关的核心 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 Client 将部署使用的证书和 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的当前版本。