MinIO 客户端
MinIO 客户端 mc 命令行工具为 UNIX 命令(如 ls、cat、cp、mirror 和 diff)提供了一个现代化的替代方案,支持文件系统和兼容 Amazon S3 的云存储服务。
mc 命令行工具旨在与 AWS S3 API 兼容,并已在 MinIO 和 AWS S3 上测试,以确保其预期的功能和行为。
MinIO 不对其他 S3 兼容服务提供任何保证,因为它们的 S3 API 实现是未知的,因此不受支持。虽然 mc 命令可能会按文档所述工作,但任何此类使用均由您自担风险。
mc 具有以下语法
mc [GLOBALFLAGS] COMMAND --help
有关支持的命令列表,请参阅命令快速参考。
与 MinIO 服务器的版本对齐
MinIO 客户端与 MinIO 服务器分开版本发布。
为了获得最佳功能和兼容性,请使用与您的 MinIO 服务器版本发布时间相近的 MinIO 客户端版本。例如,MinIO 客户端的发布日期与您的 MinIO 服务器版本相同或更晚。
您可以安装比 MinIO 服务器版本更新的 MinIO 客户端版本。但是,如果 MinIO 客户端版本与 MinIO 服务器版本相差太大,您可能会因为差异而看到更多的警告或错误。例如,虽然核心的 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_KEY和SECRET_KEY替换为 S3 服务上用户的访问密钥和私有密钥。
用所需的值替换每个参数。如果省略 ACCESS_KEY 和 SECRET_KEY,该命令将在命令行界面提示您输入这些值。
以下每个选项卡都包含一个特定于提供商的示例
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 部署,有关用户访问权限的更多信息,请参阅访问管理。对于其他兼容 S3 的服务,请参考该服务的文档。
命令快速参考
下表列出了 mc 命令
命令 |
描述 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
要仅删除存储桶的内容,请改用 |
|
|
|
|
|
|
|
使用 |
|
|
|
|
|
MinIO 客户端 |
|
|
|
|
|
|
|
|
|
|
|
|
配置文件
mc 使用一个 JSON 格式的配置文件来存储某些类型的信息,例如为每个已配置的 S3 兼容服务设置的别名。
对于 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
在创建一个新的别名时,MinIO 客户端会获取对等证书,计算公钥指纹,并询问用户是否接受该部署的证书。如果您决定信任该证书,MinIO 客户端会将证书添加到上面列出的证书颁发机构路径中。
注意
在测试环境中,您可以通过传递 --insecure 标志来绕过选定 MinIO 客户端命令的证书检查。
模式匹配
一些命令和标志允许进行模式匹配。启用后,模式可以包含以下任一通配符进行字符替换:
*代表要匹配的任意字符串,可以在中间或末尾。?代表单个字符。
例如,请参考以下关于通配符使用及其结果的示例。
模式 |
文本 |
匹配结果 |
|---|---|---|
|
ab |
匹配 |
|
abd |
不匹配 |
|
abcd |
匹配 |
|
abxxc |
匹配 |
|
abxc |
匹配 |
|
abxc |
匹配 |
|
abc |
匹配 |
|
abcxdd |
不匹配 |
全局选项
所有命令都支持以下全局选项。您也可以使用环境变量来定义其中一些选项。
- --config-dir
指向一个
JSON格式配置文件的路径,mc 使用该文件存储数据。有关 mc 如何使用配置文件的更多信息,请参阅配置文件。或者,设置环境变量
MC_CONFIG_DIR。
- --disable-pager, --dp
mc 版本新增:RELEASE.2024-04-29T09-56-05Z
在 CLI 中禁用 MinIO 客户端的分页功能。使用时,输出将直接打印到原始
STDOUT。
- --insecure
禁用 TLS/SSL 证书验证。允许与具有无效证书的服务器进行 TLS 连接。在对不受信任的 S3 主机使用此选项时请谨慎。
或者,设置环境变量
MC_INSECURE。
- --json
启用 JSON lines 格式的控制台输出。
例如,以下操作为
mc ls命令添加了 JSON Lines 输出mc --json ls play
或者,设置环境变量
MC_JSON。
- --no-color
禁用控制台输出的内置颜色主题。对于哑终端很有用。
或者,设置环境变量
MC_NO_COLOR。
- --quiet
禁止控制台输出。
或者,设置环境变量
MC_QUIET。
- --resolve
mc 版本新增:RELEASE.2024-08-13T05-33-17Z
创建一个自定义的 DNS 映射,以将一个主机名解析为指定的 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的当前版本。