MinIO客户端
MinIO客户端 mc
命令行工具提供了一个现代化的替代方案,
支持文件系统和与Amazon S3兼容的云存储服务,适用于UNIX命令如
ls
、 cat
、 cp
、 mirror
和 diff
。
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服务器版本相差太远,您可能会因为这些差异而看到更多的警告或错误。
例如,尽管围绕复制( mc cp
)的核心S3 API可能保持不变,但某些功能或标志可能只有在客户端和服务器版本对齐时才可用或稳定。
快速开始
1) 安装 mc
将 mc 命令行工具安装到主机上。 点击 与主机操作系统或环境对应的选项卡:
以下命令将为您的系统 PATH 添加一个 临时 扩展,以运行 mc
实用程序。如果您想对系统 PATH 进行永久性修改,
请参考您的操作系统说明。
或者,您可以导航到父文件夹并运行 ./mc --help
来执行 mc
。
64-bit Intel
curl https://dl.minio.org.cn/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-bit PPC
curl https://dl.minio.org.cn/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.minio.org.cn/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
Install from the MinIO Download Page
MinIO 没有正式将其二进制文件发布到常见的 Linux 仓库或包管理器(如 Ubuntu, RHEL, Archlinux/AUR)。 MinIO的二进制文件的官方来源唯一的渠道是 MinIO下载页面。
MinIO 不建议通过包管理器进行安装,因为上游仓库可能会安装错误的包或重命名的包。
所有文档都假设通过下载页 仅 安装了 官方 的 mc
客户端二进制文件,并且没有对二进制文件的命名进行任何更改。
brew install minio/stable/mc
mc --help
打开以下文件在浏览器中:
https://dl.minio.org.cn/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
,该命令将提示您在命令行界面(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 部署,请参阅 访问管理 以获取有关 用户访问权限的更多信息。对于其他 S3 兼容服务, 请参考该服务的文档。
命令快速参考
下表列出了 mc
命令:
Command |
描述 |
---|---|
|
|
The |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
要仅删除存储桶的内容,请改用 |
|
|
|
|
|
|
|
使用 |
|
使用 |
|
|
|
|
|
MinIO客户端的 |
|
|
|
|
|
|
|
|
|
|
|
|
配置文件
mc
使用一个 JSON
格式的配置文件来存储
某些类型的信息,比如为每个配置的 S3 兼容服务
设置的 别名
。
对于 Linux 和 macOS,默认的配置文件位置是
~/.mc/config.json
。
对于 Windows,mc
会尝试通过查询特定的环境变量来构建
默认的文件路径。如果某个变量未设置,mc
会移动到下一个
变量。如果所有尝试都失败,mc
会返回一个错误。
以下列表描述了 mc
检查的每个可能的
文件路径位置的顺序:
HOME\.mc\config.json
USERPROFILE\.mc\config.json
HOMEDRIVE+HOMEPATH\.mc\config.json
您可以使用 --config-dir
证书
MinIO 客户端将证书和 CAs 存储在以下路径:
Linux、macOS 和其他类 Unix-like 系统:
~/.mc/certs/ # certificates
~/.mc/certs/CAs/ # Certificate Authorities
Windows 系统:
C:\Users\[username]\mc\certs\ # 证书
C:\Users\[username]\mc\certs\CAs\ # 证书颁发机构
当创建一个新的 别名 时,MinIO客户端会获取对等证书,计算公钥指纹,并询问用户是否接受部署的证书。 如果您决定信任该证书,MinIO客户端会将该证书添加到上述证书权威路径中。
备注
在测试环境中,您可以通过传递 --insecure
标志来绕过选定的MinIO客户端命令的证书检查。
模式匹配
某些命令和标记允许模式匹配。 启用后,模式可以包含以下任一通配符来替换字符:
*
表示要匹配的字符串,可以是中间的字符串,也可以是末尾的字符串。?
来表示一个字符。
例如,请参考以下通配符使用及其结果的示例。
Pattern |
Text |
Match Result |
---|---|---|
|
ab |
Match |
|
abd |
Not a match |
|
abcd |
Match |
|
abxxc |
Match |
|
abxc |
Match |
|
abxc |
Match |
|
abc |
Match |
|
abcxdd |
Not a match |
全局选项
所有 命令 都支持以下全局选项。 您还可以使用一些 环境变量 来定义这些选项。
- --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 连接到 服务器的 TLS 连接。 对不受信任的 S3 主机使用该选项时要谨慎。
或者,设置环境变量
MC_INSECURE
。
- --JSON
启用以 JSON行 格式向 控制台输出数据。
例如,以下操作将 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
的当前版本。