文档

MinIO 客户端

MinIO 客户端 mc 命令行工具为 UNIX 命令(如 lscatcpmirrordiff)提供了一种现代替代方案,支持文件系统和 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 Server 版本更新的 MinIO Client 版本。但是,如果 MinIO Client 版本与 MinIO Server 版本相差太大,您可能会看到由于差异造成的更多警告或错误。例如,虽然围绕复制的核心 S3 API (mc cp) 可能保持不变,但某些功能或标志可能只有在客户端和服务器版本对齐时才可用或稳定。

快速入门

1) 安装 mc

在主机上安装 mc 命令行工具。点击与主机操作系统或环境相对应的标签。

以下命令将一个临时扩展添加到您的系统 PATH 中,以便运行 mc 工具。请参考您的操作系统的说明,了解如何对系统 PATH 进行永久修改。

或者,通过导航到父文件夹并运行 ./mc --help 来执行 mc

64 位英特尔

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_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 Client 还包含一个用于管理 MinIO 部署的管理扩展。请参阅 mc admin,了解更完整的文档。

下表不包括这些命令。

命令

描述

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

mc anonymous 命令支持设置或删除对存储桶及其内容的匿名 策略。具有匿名策略的存储桶允许公共访问,其中客户端可以在没有 身份验证 的情况下执行策略授予的任何操作。

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

mc cat

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

mc cp

mc cp 命令将对象复制到或从 MinIO 部署中复制,其中源可以是 MinIO 本地文件系统。

mc diff

mc diff 计算两个文件系统目录或 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 命令设置、删除或检索对象(s)的 对象法律保留 (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 命令将对象从本地文件系统上传到目标 S3 部署上的存储桶。

mc rb

mc rb 命令删除 MinIO 上其他与 S3 兼容的服务上的一个或多个存储桶。

要仅删除存储桶的内容,请使用 mc rm 代替。

mc ready

mc ready 命令检查集群的状态以及集群是否具有 readwrite 数量。

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

mc retention 命令配置存储桶中对象或对象(s)的 一次写入多次读取 (WORM) 锁定 设置。 您还可以设置存储桶的默认对象锁定设置,其中所有没有显式对象锁定设置的对象都将继承存储桶默认设置。

mc rm

mc rm 命令从 MinIO 部署上的存储桶中 删除对象。 要完全删除存储桶,请使用 mc rb 代替。

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

mc sql

mc sql 命令提供 S3 Select 接口,用于对指定 MinIO 部署中的对象执行 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 客户端将部署的证书和 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 客户端命令的证书检查。

模式匹配

某些命令和标志允许模式匹配。启用后,模式可以包含以下两个通配符用于字符替换

  • * 代表要匹配的字符串,无论是在中间还是末尾。

  • ? 代表单个字符。

例如,请参考以下示例,了解通配符的使用方式及其结果。

模式

文本

匹配结果

abc*

ab

匹配

abc*

abd

不匹配

abc*c

abcd

匹配

ab*??d

abxxc

匹配

ab*??d

abxc

匹配

ab??d

abxc

匹配

ab??d

abc

匹配

ab??d

abcxdd

不匹配

全局选项

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

--config-dir

mc 用于存储数据的 JSON 格式配置文件的路径。有关 mc 如何使用配置文件的更多信息,请参见 配置文件

或者,设置环境变量 MC_CONFIG_DIR

--debug

启用到控制台的详细输出。

例如,以下操作将详细输出添加到 mc ls 命令中

mc --debug ls play

或者,设置环境变量 MC_DEBUG

--disable-pager, --dp

新版本: RELEASE.2024-04-29T09-56-05Z

禁用 MinIO 客户端在 CLI 中的分页功能。使用时,输出将打印到原始 STDOUT 而不是。

--insecure

禁用 TLS/SSL 证书验证。允许与具有无效证书的服务器建立 TLS 连接。使用此选项针对不可信的 S3 主机时要谨慎。

或者,设置环境变量 MC_INSECURE

--json

启用 JSON 行 格式的输出到控制台。

例如,以下操作将 JSON 行输出添加到 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
可选

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