中文文档

MinIO客户端

MinIO客户端 mc 命令行工具提供了一个现代化的替代方案, 支持文件系统和与Amazon S3兼容的云存储服务,适用于UNIX命令如 lscatcpmirrordiff

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_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 客户端还包括一个管理扩展,用于管理 MinIO 部署。 更多信息请参见 mc admin 的完整文档。

下表不包括这些命令。

Command

描述

mc alias 命令为管理 mc 可以连接并对其运行操作的 S3 兼容主机列表提供了方便的界面。

mc anonymous 命令支持为桶及其内容设置或移除匿名 policies。 具有匿名策略的桶允许公共访问,客户端可以无需 authentication 执行策略授予的任何操作。

The mc batch 命令允许你在 MinIO 部署上运行一个或多个作业任务。

mc cat

mc cat 命令用于将一个文件或对象的内容连接到另一个文件 或对象中。您还可以使用该命令将指定文件或对象的内容 显示在 STDOUT 上。 cat 的功能与 cat 命令类似。

mc cp

mc cp 命令用于将对象从一个MinIO部署复制到另一个MinIO 部署, 或者 从MinIO复制到本地文件系统。

mc diff

mc diff 是 MinIO(mc 是一个命令行工具,用于与 MinIO 服务器 进行交互)的一个命令,用于比较两个文件系统目录或 MinIO 存储 桶。 mc diff 命令只列出那些缺失或在大小上不同的对象。 需要注意的是, mc diff 比较对象的内容。

mc du

mc du 命令总结了存储桶和文件夹的磁盘使用情况。 您还可以对本地文件系统使用 du 命令,以产生类似于 du 命令的结果。

mc encrypt 命令用于设置、更新或禁用默认桶的服务器端加密(SSE)模式。 MinIO 自动使用指定的 SSE 模式对对象进行加密。

mc event 命令支持添加、删除和列出存储桶事件通知。

mc find

mc find 命令支持在 MinIO 部署上搜索对象。 您还可以使用此命令在文件系统上搜索文件。

mc get

mc get 命令从目标 S3 部署将对象下载到本地文件系统。

mc head

mc head 命令显示对象的最初 n 行, 其中 n 是传递给命令的参数。

mc idp ldap 命令允许你管理用于第三方 Active Directory 或 LDAP 身份和访问管理(IAM)集成的配置

mc idp openid 命令允许您管理第三方 OpenID 身份和访问管理 (IAM) 集成配置。

mc idp ldap policy 命令展示了策略与相关组或用户之间的映射关系。

mc ilm 命令用于在 MinIO 部署上管理 对象生命周期管理规则 和分层。

mc legalhold 命令用于为对象(们)设置、移除或检索 对象合法保留(WORM) 设置。

mc license 命令用于与 MinIO SUBNET 的集群注册。 使用这些命令可注册部署、显示群集当前许可证信息或更新群集的许可证密钥。

mc ls

mc ls 命令列出 MinIO 或另一个 S3 兼容服务上的存储桶和 对象。

mc mb

mc mb 命令在指定的路径创建一个新的桶或 目录。

mc mirror

mc mirror 命令用于将内容同步到 MinIO 部署,类似于 rsync 工具。 mc mirror 支持将文件系统、MinIO 部署和其他 S3 兼容主机作为同步源。

mc mv

mc mv 命令可以将对象从源移动到目标,例如在不同的 MinIO 部署之间, 或者 在同一 MinIO 部署中的不同桶之间。 mc mv 命令还支持将对象在本地文件系统和 MinIO 之间移动。

mc od

mc od 命令将本地文件分块并按指定的部分和部分大小复制到远程位置。 该命令输出了上传文件所花费的时间。

mc ping

mc ping 命令执行对指定目标的存活检查。

mc pipe

mc pipe 命令将内容从 STDIN 流式传输到目标对象。

mc put

mc put 是 mc 命令行工具的一个命令,它用于将本地文件系统中的对象上传到目标 S3 部署中的桶。

mc rb

mc rb 命令用于从 MinIO 其他 S3 兼容服务 中删除一个或多个桶。

要仅删除存储桶的内容,请改用 mc rm

mc ready

mc ready 命令会检查群集的状态,以及群集是否有 法定人数。

mc replicate 命令用于配置和管理 MinIO 部署的 服务器端存储桶复制,包括 活动-活动复制配置重新同步

mc retention 命令用于为存储桶中的一个或多个对象配置 写一次读多次(WORM)锁定 设置。 您还可以为存储桶设置默认的对象锁定设置,其中所有没有明确对象锁定设置的对象将继承存储桶的默认设置。

mc rm

使用 mc rm 命令 removes objects 从 MinIO 部署的桶中删除对象。 要完全删除一个存储桶,请使用 mc rb 命令。

使用 mc share 命令来管理 MinIO 存储桶上对象的预签名 URL,用于下载和上传对象。

mc sql

mc sql 命令为指定的 MinIO 部署中的对象提供了一个 S3 选择接口,用于执行 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 客户端将证书和 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

abc*

ab

Match

abc*

abd

Not a match

abc*c

abcd

Match

ab*??d

abxxc

Match

ab*??d

abxc

Match

ab??d

abxc

Match

ab??d

abc

Match

ab??d

abcxdd

Not a match

全局选项

所有 命令 都支持以下全局选项。 您还可以使用一些 环境变量 来定义这些选项。

--config-dir

指向 JSON 格式配置文件的路径,mc 用于存储数据。 有关 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 客户端的寻呼机功能。 使用时,输出将打印到原始 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 的当前版本。

--help
Optional

显示终端上命令使用情况的摘要。

Join Slack 商业支持购买咨询