跳转到主要内容

这是本节的多页打印视图。 .

返回本页常规视图.

Silo 客户端(mcli / mc)

Pigsty 维护的客户端在独立归档与 Linux 软件包中以 mcli 发布;源码构建、容器入口点、配置目录、模块路径和命令语法则为兼容性保留 mc。它为文件系统和兼容 Amazon S3 的对象存储提供 lscatcpmirrordiff 等熟悉的命令。

mc 命令行工具以兼容 AWS S3 API 为目标构建。当前源码保留与 Silo、上游 MinIO 和 AWS S3 的兼容性。

Silo 项目无法保证它与每一种其他 S3 兼容服务的行为,因为各家实现存在差异。在将其他服务视为兼容对象前,请先测试工作负载依赖的操作。

mc 的语法如下:

mc [GLOBALFLAGS] COMMAND --help

支持的命令列表参见 命令速查

与 Silo 服务端的版本对齐

客户端与 Silo 服务端独立发布。

为获得最佳功能与兼容性,建议使用与 Silo 或 MinIO 服务端发布时间接近的客户端版本。通常,选择与服务端同日或更晚发布的客户端更稳妥。

可以安装比服务端更新的客户端。但如果版本偏差过大,即使 mc cp 等核心 S3 操作仍兼容,管理功能或 flag 也可能存在差异。

快速开始

1) 安装客户端

请从下载与安装页面选择 Linux 软件包、适用于 Linux/macOS/Windows 的归档文件或客户端容器。版本化制品与校验和也可从 GitHub Releases 获取。

独立归档与 Linux 软件包安装的命令名是 mcli,容器与源码构建则保留 mc。两者是同一个客户端的别名;本文档示例使用 mc,若主机上安装的是 mcli,请直接替换命令名。

从源码构建维护分支:

git clone https://github.com/pgsty/mc.git
cd mc
make build
./mc --version
警告

Pigsty 分支刻意禁用了 mc update。请通过 Silo 下载页Pigsty 软件仓库GitHub Releases升级。

说明

当前 pgsty/mc 源码仍注册 mc licensemc support 命令树。这些命令集成的是上游 MinIO SUBNET 及其商业许可/支持服务,而不是 Silo 服务。它们的命令名、协议字段、SUBNET 措辞以及 MinIO 价格/许可证链接属于上游契约,不应更名。

2) 为兼容 S3 的服务创建别名

警告

重要

以下示例会临时禁用 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_KEYSECRET_KEY 替换为该 S3 服务上某个用户的 access key 和 secret key。

将各参数替换为所需值。 如果省略 ACCESS_KEYSECRET_KEY,命令会在 CLI 中提示输入这两个值。

以下每个标签页都包含一个特定提供商示例:

Silo 服务端
mc alias set silo https://silo.example.net ACCESS_KEY SECRET_KEY
AWS S3 Storage
mc alias set myS3 https://s3.{your-region-code}.amazonaws.com/endpoint ACCESS_KEY SECRET_KEY
Google Cloud Storage
mc alias set myGCS https://storage.googleapis.com/endpoint ACCESS_KEY SECRET_KEY

3) 测试连接

使用 mc admin info 命令测试与新添加 Silo 部署的连接:

mc admin info silo

如果命令执行成功,会返回该 S3 服务的信息。 如果失败,请检查以下各项:

  • 主机可连通 S3 服务 URL(例如使用 pingtraceroute)。

  • 指定的 ACCESSKEYSECRETKEY 对应 S3 服务上的有效用户。 该用户必须有权限在该服务上执行操作。

    对于 MinIO 部署,参见 Access Management 获取更多用户访问权限信息。对于其他兼容 S3 的 服务,请参考该服务文档。

命令速查

下表列出了 mc 命令:

说明

说明

客户端还包含用于管理 Silo 与兼容 MinIO 部署的管理扩展。更完整文档参见 mc admin

下表不包含这些命令。

命令

说明

mc alias list
mc alias remove
mc alias set
mc alias import
mc alias export

mc alias 命令提供了一个便捷接口,用于管理 mc 可连接并执行操作的 S3 兼容主机列表。

mc anonymous get
mc anonymous get-json
mc anonymous links
mc anonymous list
mc anonymous set
mc anonymous set-json

mc anonymous 命令支持为存储桶及其内容设置或移除匿名 policies。 配置了匿名策略的存储桶允许公开访问,客户端无需进行 authentication 即可执行策略授予的任意操作。

mc batch describe
mc batch generate
mc batch list
mc batch start
mc batch status

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 clear
mc encrypt info
mc encrypt set

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

mc event add
mc event ls
mc event rm

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

mc find

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

mc get

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

mc head

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

mc idp ldap accesskey
mc idp ldap accesskey create-with-login
mc idp ldap add
mc idp ldap disable
mc idp ldap enable
mc idp ldap info
mc idp ldap ls
mc idp ldap policy
mc idp ldap rm
mc idp ldap update

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

mc idp openid add
mc idp openid disable
mc idp openid enable
mc idp openid info
mc idp openid ls
mc idp openid rm
mc idp openid update

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

mc idp ldap policy attach
mc idp ldap policy detach
mc idp ldap policy entities

mc idp ldap policy 命令用于显示策略与关联组或用户之间的映射关系。

mc ilm restore
mc ilm rule add
mc ilm rule edit
mc ilm rule export
mc ilm rule import
mc ilm rule ls
mc ilm rule rm
mc ilm tier add
mc ilm tier check
mc ilm tier info
mc ilm tier ls
mc ilm tier rm
mc ilm tier update

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

mc legalhold clear
mc legalhold info
mc legalhold set

mc legalhold 命令用于为一个或多个对象设置、移除或获取 object legal hold (WORM) 配置。

mc license info
mc license register
mc license update

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 quorum。

mc replicate add
mc replicate backlog
mc replicate export
mc replicate import
mc replicate ls
mc replicate resync
mc replicate rm
mc replicate status
mc replicate update

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

mc retention clear
mc retention info
mc retention set

mc retention 命令用于为存储桶中的一个或多个对象配置 Write-Once Read-Many (WORM) locking 设置。 你还可以为存储桶设置默认的对象锁定设置;未显式配置对象锁定设置的所有对象都会继承该存储桶默认值。

mc rm

mc rm 命令用于从 MinIO 部署的存储桶中 删除对象。 如需彻底删除存储桶,请改用 mc rb

mc share download
mc share ls
mc share upload

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

mc sql

mc sql 命令提供 S3 Select 接口,用于对指定 MinIO 部署中的对象执行 SQL 查询。

mc stat

mc stat 命令用于显示 MinIO 存储桶中对象的信息,包括对象元数据。 你也可以使用它来检索存储桶元数据。

mc support callhome
mc support diag
mc support inspect
mc support perf
mc support profile
mc support proxy
mc support top api
mc support top disk
mc support top locks
mc support upload

MinIO Client mc support 命令提供用于分析部署健康状况或性能、并运行诊断的工具。 你还可以上传生成的健康报告,供 MinIO 工程团队进一步分析。

mc tag list
mc tag remove
mc tag set

mc tag 命令用于添加、删除和列出与存储桶或对象关联的标签。

mc tree

mc tree 命令以树形格式列出 MinIO 存储桶中的所有前缀。 该命令还可选支持在每个前缀处列出存储桶内的所有对象,包括存储桶根。

mc undo

mc undo 命令用于撤销指定路径上由 PUTDELETE 操作引起的更改。

mc update

mc update 兼容命令会报告自更新已禁用。请通过 Silo 下载页、Pigsty 软件仓库或 GitHub Releases 升级。

mc version enable
mc version info
mc version suspend

mc version 命令可为 MinIO 存储桶启用、禁用并获取 版本控制 状态。

mc watch

mc watch 命令用于监视指定 MinIO 存储桶或本地文件系统路径上的事件。 对于 S3 服务,请使用 mc event add 在兼容 S3 的服务上配置存储桶事件通知。

配置文件

mc 使用 JSON 格式的配置文件来存储 某些类型的信息,例如每个已配置兼容 S3 服务的 aliases

在 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

创建新的 alias 时,MinIO Client 会拉取对端证书、计算公钥指纹,并询问用户是否接受该部署的证书。 如果你决定信任该证书,MinIO Client 会将其添加到上述证书颁发机构路径。

说明

说明

在测试环境中,你可以通过传入 --insecure flag,跳过部分 MinIO Client 命令的证书检查。

模式匹配

某些命令和 flag 支持模式匹配。 启用后,模式可包含以下任一通配符用于字符替换:

  • * 表示要匹配的一串字符,可位于中间或末尾。
  • ? 表示单个字符。

例如,可参考以下通配符使用示例及其结果。

模式 文本 匹配结果
abc* ab 匹配
abc* abd 不匹配
abc*c abcd 匹配
ab*??d abxxc 匹配
ab*??d abxc 匹配
ab??d abxc 匹配
ab??d abc 匹配
ab??d abcxdd 不匹配

全局选项

所有 commands 都支持以下全局选项。 你也可以使用 Environment Variables 来定义其中部分选项。

--config-dir

option

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

或者,设置环境变量 MC_CONFIG_DIR

--debug

option

启用控制台详细输出。

例如,以下操作会为 mc ls 命令增加详细输出:

mc --debug ls play

或者,设置环境变量 MC_DEBUG

--disable-pager --dp

option

说明

新增: mc

RELEASE.2024-04-29T09-56-05Z

在 CLI 中禁用 MinIO Client 的分页功能。 使用后,输出会直接打印到原始 STDOUT

--insecure

option

禁用 TLS/SSL 证书校验。允许与证书无效的 服务器建立 TLS 连接。对不受信任的 S3 主机使用该 选项时请谨慎。

或者,设置环境变量 MC_INSECURE

--json

option

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

例如,以下操作会为 mc ls 命令增加 JSON Lines 输出:

mc --json ls play

或者,设置环境变量 MC_JSON

--no-color

option

禁用控制台输出的内置配色主题。适用于 dumb 终端。

或者,设置环境变量 MC_NO_COLOR

--quiet

option

抑制控制台输出。

或者,设置环境变量 MC_QUIET

--resolve

option

说明

新增: 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

option

显示 mc 的当前版本。

--help

mc-cmd

Optional

在终端显示命令用法摘要。

1 - mc alias list

语法

mc alias list 命令列出本地 mc 配置中的所有别名。

该命令输出包含每个别名关联的 access key 和 secret key 配置。

以下命令列出本地主机上配置的所有 aliases

mc alias list

mc alias list 命令语法如下:

mc [GLOBALFLAGS] alias list [ALIAS]
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

可选 要显示的特定别名名称。

全局标志

此命令支持 全局标志 中的任意选项。

示例

列出所有已配置别名

以下 mc alias list 命令列出本地 mc 配置中所有已配置的别名。

mc alias list
mc alias list

列出特定别名

以下 mc alias list 命令列出本地 mc 配置中特定别名的详细信息。

mc alias list myminio
mc alias list ALIAS
  • ALIAS 替换为要返回的别名名称。

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

2 - mc anonymous set

语法

mc anonymous set 命令为存储桶设置匿名(即未认证或公开)访问 策略

配置了匿名策略的存储桶允许客户端在无需 身份验证 的情况下, 访问存储桶内容并执行与指定策略一致的操作。

要使用 IAM JSON 策略设置存储桶匿名策略,请使用 mc anonymous set-json 命令。

以下命令为 myminio MinIO 部署上的多个存储桶设置匿名访问策略:

mc anonymous set upload myminio/uploads
mc anonymous set download myminio/downloads
mc anonymous set public myminio/public

应用程序可在无需认证的情况下执行以下操作:

  • myminio/uploadsmyminio/public 执行 PUT 对象操作。
  • myminio/downloadsmyminio/public 执行 GET 对象操作。

该命令语法如下:

mc [GLOBALFLAGS] policy set PERMISSION ALIAS
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

PERMISSION

mc-cmd

必需 要分配给指定 ALIAS 的策略名称。 指定以下值之一:

  • none - 禁用对 ALIAS 的匿名访问。
  • download - 启用对 ALIAS 的仅下载访问。
  • upload - 启用对 ALIAS 的仅上传访问。
  • public - 启用对 ALIAS 的下载和上传访问。
ALIAS

mc-cmd

必需 要应用指定 PERMISSION 的存储桶或存储桶前缀的完整路径。

指定 MinIO 或其他 S3 兼容服务的 alias以及 存储桶或存储桶前缀的完整路径。例如:

mc anonymous set public play/mybucket

指定存储桶前缀可仅对该前缀设置策略。例如,以下命令分别为 mybucket/downloadsmybucket/uploads 前缀设置不同的匿名存储桶策略:

mc anonymous set download play/mybucket/downloads
mc anonymous set upload play/mybucket/uploads

全局标志

此命令支持 全局标志 中的任意选项。

示例

为存储桶设置匿名策略

使用 mc anonymous set 为存储桶设置匿名策略:

mc anonymous set POLICY ALIAS/PATH

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

3 - mc batch cancel

说明

新增: mc

RELEASE.2023-03-20T17-17-53Z

语法

mc batch cancel 可停止正在进行的批处理作业。

您必须指定作业 ID。 要查找作业 ID,请使用 mc batch list

以下命令会输出标识为 KwSysDpxcBU9FNhGkn2dCf 的作业定义。

mc batch cancel myminio KwSysDpxcBU9FNhGkn2dCf

该命令使用以下语法:

mc [GLOBALFLAGS] batch cancel ALIAS JOBID
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

当前运行该作业的 MinIO 部署的 alias

JOBID

mc-cmd

Required

要取消的批处理作业的唯一标识符。 要查找作业 ID,请使用 mc batch list

全局参数

此命令支持 全局标志 中的任意选项。

示例

取消正在进行的批处理作业

以下命令会取消别名为 myminio 的部署上 ID 为 KwSysDpxcBU9FNhGkn2dCf 的作业:

mc batch cancel myminio KwSysDpxcBU9FNhGkn2dCf

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4 - mc encrypt clear

语法

mc encrypt clear 命令用于移除存储桶当前的默认加密设置。

以下命令会移除 myminio alias 关联的 MinIO 部署中 mydata 存储桶的默认加密设置:

mc encrypt clear myminio/mydata

该命令的语法如下:

mc [GLOBALFLAGS] encrypt clear ALIAS
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

要移除默认 SSE 模式的目标存储桶完整路径。 指定 MinIO 部署的 alias 作为 ALIAS 路径前缀。例如:

mc encrypt clear play/mybucket

全局标志

此命令支持 全局标志 中的任意选项。

示例

移除存储桶的自动服务端加密设置

 mc encrypt clear myminio/data
mc encrypt clear ALIAS
  • ALIAS 替换为目标 MinIO 部署的 alias, 即要移除存储桶自动服务端加密配置的部署别名。

行为

修改存储桶加密设置不会影响已加密对象

禁用存储桶自动加密 不会 解密该存储桶中的任何对象。

要永久解密存储桶中的对象,可在禁用对象解密后执行原地复制。 对于启用版本控制的存储桶,旧版本对象仍保持加密状态。

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

5 - mc event add

语法

mc event add 命令为存储桶添加事件通知触发器。

MinIO 会将已触发的事件自动发送到已配置的 notification target

以下命令为 myminio MinIO 部署中的 mydata 存储桶上的 所有 PUTDELETE 操作创建新的事件通知触发器:

mc event add --event "put,delete" myminio/mydata arn:aws:sqs::primary:target

指定的 ARN 对应 myminio 部署上已配置的 bucket notification target

命令语法如下:

mc [GLOBALFLAGS] event add \
                 [--event "string"]  \
                 [--ignore-existing] \
                 [--prefix "string"] \
                 [--suffix "string"] \
                 ALIAS               \
                 ARN
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

要添加新事件通知的 MinIO alias 和存储桶。 例如:

mc event add play/mybucket
ARN

mc-cmd

Required

通知目标的 Amazon Resource Name (ARN)

MinIO 服务器启动时会为每个已配置的通知目标输出一个 ARN。 更多信息请参见 存储桶通知

--event

mc-cmd

Optional

MinIO 生成存储桶通知所依据的事件。

支持以下取值:

  • put
  • get
  • delete

使用逗号 , 分隔可指定多个值。 值之间不要添加空白字符。

如果未指定,默认值为 put,delete,get

各支持值对应的 S3 事件详见 支持的存储桶事件

ignore-existing, p

mc-cmd

Optional

如果已存在匹配的触发器,则指示 MinIO 忽略指定的事件触发器。

--prefix

mc-cmd

Optional

指定可由 --event 触发存储桶通知的存储桶前缀。

例如,若 ALIASplay/mybucket--prefixphotos,则只有 play/mybucket/photos 中的事件会触发存储桶通知。

省略该参数时,存储桶中所有前缀和对象的事件都可触发通知。

--suffix

mc-cmd

Optional

指定可由 --event 触发存储桶通知的存储桶后缀。

例如,若 ALIASplay/mybucket--suffix.jpg,则只有 play/mybucket/*.jpg 中的事件会触发存储桶通知。

省略该参数时,无论后缀为何,所有对象的事件都可触发通知。

全局标志

此命令支持 全局标志 中的任意选项。

示例

为存储桶添加事件通知

以下命令为某个存储桶上的所有 S3 PUTGETDELETE 操作添加新的事件通知触发器。该命令假设 MinIO 部署中至少已配置一个 bucket notification target

mc event add myminio/mydata arn:minio:sqs::primary:webhook
mc event add ALIAS ARN
  • ALIAS 替换为 MinIO 部署的 alias 和要添加 存储桶通知事件的存储桶。例如:

    myminio/mydata

  • ARN 替换为通知目标 ARN

行为

支持的存储桶事件

下表列出了 mc event add 支持的取值及其对应的 S3 events

Supported Value

对应的 S3 事件

put

s3:ObjectCreated:CompleteMultipartUpload
s3:ObjectCreated:Copy
s3:ObjectCreated:DeleteTagging
s3:ObjectCreated:Post
s3:ObjectCreated:Put
s3:ObjectCreated:PutLegalHold
s3:ObjectCreated:PutRetention
s3:ObjectCreated:PutTagging

get

s3:ObjectAccessed:Head
s3:ObjectAccessed:Get
s3:ObjectAccessed:GetRetention
s3:ObjectAccessed:GetLegalHold

delete

s3:ObjectRemoved:Delete
s3:ObjectRemoved:DeleteMarkerCreated

replica

s3:Replication:OperationCompletedReplication
s3:Replication:OperationFailedReplication
s3:Replication:OperationMissedThreshold
s3:Replication:OperationNotTracked
s3:Replication:OperationReplicatedAfterThreshold

ilm

s3:ObjectTransition:Failed
s3:ObjectTransition:Complete
s3:ObjectRestore:Post
s3:ObjectRestore:Completed

scanner

s3:Scanner:ManyVersions
s3:Scanner:BigPrefix

有关上述 S3 事件的更完整文档,请参见 S3 Supported Event Types

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

6 - mc idp ldap accesskey disable

描述

mc idp ldap accesskey disable 会在 MinIO 部署上禁用指定的 access key

以下示例在 minio 部署上禁用访问密钥 mykey

mc idp ldap accesskey disable minio mykey

该命令的语法如下:

mc [GLOBALFLAGS] idp ldap accesskey disable  \
                                 ALIAS       \
                                 KEY
  • ALIAS 替换为已配置 AD/LDAP 集成的 MinIO 部署的 alias

  • KEY 替换为要禁用的访问密钥。

  • 方括号 [] 表示可选参数。

  • 同一行中的参数彼此相互依赖。

  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

已配置 AD/LDAP 的 MinIO 部署的 alias

例如:

mc idp ldap accesskey disable minio
KEY

mc-cmd

Required

要禁用的已配置访问密钥。

示例

禁用 minio 部署中的访问密钥 mykey

mc idp ldap accesskey disable minio/ mykey

全局标志

此命令支持 全局标志 中的任意选项。

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

7 - mc idp ldap add

描述

mc idp ldap add 命令用于创建 AD/LDAP IDP 服务器配置。

每个 MinIO 部署最多仅支持 一个 (1) AD/LDAP 提供商。

以下示例为 myminio 部署设置 AD/LDAP 配置项。

mc idp ldap add                                                            \
            myminio                                                        \
            server_addr=myldapserver:636                                   \
            lookup_bind_dn=cn=admin,dc=min,dc=io                           \
            lookup_bind_password=somesecret                                \
            user_dn_search_base_dn=dc=min,dc=io                            \
            user_dn_search_filter="(uid=%s)"                               \
            group_search_base_dn=ou=swengg,dc=min,dc=io                    \
            group_search_filter="(&(objectclass=groupofnames)(member=%d))"

该命令的语法如下:

mc [GLOBALFLAGS] idp ldap add               \
                          ALIAS             \
                          [CFG_PARAM1]      \
                          [CFG_PARAM2]...
  • ALIAS 替换为 MinIO 部署的 alias,用于创建 AD/LDAP 集成。

  • [CFG_PARAM#] 替换为各个 configuration setting 键值对,格式为 PARAMETER="value"

  • 方括号 [] 表示可选参数。

  • 同一行中的参数彼此相互依赖。

  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

要添加 AD/LDAP 集成的 MinIO 部署的 alias

例如:

mc idp ldap add myminio                               \
                server_addr=myldapserver:636          \
                lookup_bind_dn=cn=admin,dc=min,dc=io  \
                lookup_bind_password=somesecret       \
                user_dn_search_base_dn=dc=min,dc=io   \
                user_dn_search_filter="(uid=%s)"      \
server_addr

mc-cmd

Required

指定 Active Directory / LDAP server 的主机名。例如:

ldapserver.com:636
说明

srv_record_name 会自动识别端口

如果你的 AD/LDAP server 使用 DNS SRV Records,则 不要server_addr 的值后追加端口号。 SRV 请求在返回可用服务器列表时会自动包含端口号。

该参数对应环境变量 MINIO_IDENTITY_LDAP_SERVER_ADDR

lookup_bind_dn

mc-cmd

Required

指定 MinIO 在查询 AD/LDAP server 时所使用的 AD/LDAP 账户 Distinguished Name (DN)。 这会启用对 AD/LDAP server 的 Lookup-Bind 认证。

该 DN 账户应为只读访问账号,并具备足够权限以支持执行用户和组查询。

该参数对应环境变量 MINIO_IDENTITY_LDAP_LOOKUP_BIND_DN

lookup_bind_password

mc-cmd

Required

指定 Lookup-Bind 用户账户的密码。

说明

变更: RELEASE.2023-06-23T20-26-00Z

当通过 mc admin config get 返回此值时,MinIO 会将其脱敏。

该参数对应环境变量 MINIO_IDENTITY_LDAP_LOOKUP_BIND_PASSWORD

user_dn_attributes

mc-cmd

Optional

说明

新增: RELEASE.2024-06-06T09-36-42Z

用户 DN 属性的逗号分隔列表。

一些有效值包括 uid,cn,mail,sshPublicKey

如果要为 LDAP 用户启用公钥认证,请将 sshPublicKey 作为 DN 属性传入。 随后,用户即可使用传入的 SSH Public Key 登录 SFTP server。

mc idp ldap update ALIAS user_dn_attributes=sshPublicKey
user_dn_search_base_dn

mc-cmd

Required

指定 MinIO 在查询与认证客户端所提供凭证相匹配的用户凭证时所使用的基础 Distinguished Name (DN)。

多个 DN 之间请使用分号(;)分隔。

例如:

cn=miniousers,dc=myldapserver,dc=net;ou=swengg,dc=min,dc=io

支持 Lookup-Bind 模式。

该参数对应环境变量 MINIO_IDENTITY_LDAP_USER_DN_SEARCH_BASE_DN

user_dn_search_filter

mc-cmd

Required

指定 MinIO 在查询与认证客户端所提供凭证相匹配的用户凭证时所使用的 AD/LDAP 搜索过滤器。

使用 %s 替换字符将客户端指定的用户名插入搜索字符串。例如:

(userPrincipalName=%s)

该参数对应环境变量 MINIO_IDENTITY_LDAP_USER_DN_SEARCH_FILTER

comment

mc-cmd

Optional

指定要附加到 AD/LDAP 配置上的注释。

该参数对应环境变量 MINIO_IDENTITY_LDAP_COMMENT

enabled

mc-cmd

Optional

设为 false 可禁用 AD/LDAP 配置。

如果设为 false,应用程序将无法生成 STS 凭证, 也无法再使用已配置的提供者向 MinIO 进行身份验证。

默认为 true,即 “enabled”。

group_search_base_dn

mc-cmd

Optional

指定 MinIO 在执行组查询时所使用的组搜索基础 Distinguished Names 列表,多个值之间使用分号(;)分隔。

例如:

cn=miniogroups,dc=myldapserver,dc=net;ou=swengg,dc=min,dc=io

该参数对应环境变量 MINIO_IDENTITY_LDAP_GROUP_SEARCH_BASE_DN

group_search_filter

mc-cmd

Optional

指定用于为已认证用户执行组查询的 AD/LDAP 搜索过滤器。

使用 %s 替换字符将客户端指定的用户名插入搜索字符串。 使用 %d 替换字符将客户端指定用户名对应的 Distinguished Name 插入搜索字符串。

例如:

(&(objectclass=groupOfNames)(memberUid=%s))

在提供 AD/LDAP 组搜索过滤器时,应将其配置为仅返回支持认证所需的最少相关组。 返回大量组成员关系的过滤器会增加相关调用和资源的体量。 对大请求体或大响应体敏感的功能可能因此出现意外行为。

该参数对应环境变量 MINIO_IDENTITY_LDAP_GROUP_SEARCH_FILTER

server_insecure

mc-cmd

Optional

指定 on 可允许与 AD/LDAP server 建立未加密的连接(非 TLS)。

MinIO 会以明文形式将 AD/LDAP 用户凭证发送到 AD/LDAP server,因此 必须 启用 TLS,才能防止凭证在传输过程中被读取。 启用此选项会带来安全风险,因为任何能够访问网络流量的用户都可能看到未加密的明文 凭证。

默认值为 off

该参数对应环境变量 MINIO_IDENTITY_LDAP_SERVER_INSECURE

server_starttls

mc-cmd

Optional

指定 on 可启用到 AD/LDAP server 的 StartTLS 连接。

默认值为 off

有关 StartTLS 的更多信息,请参见 LDAP RFC 4511 specification 第 4.14 节。

该参数对应环境变量 MINIO_IDENTITY_LDAP_SERVER_STARTTLS

srv_record_name

mc-cmd

Optional

说明

新增: RELEASE.2022-12-12T19-27-27Z

指定适当的值,以允许 MinIO 通过 DNS SRV record 请求选择 AD/LDAP server。

启用后,MinIO 会通过以下方式选择 AD/LDAP server:

  • 按标准命名约定构造目标 SRV 记录名称。
  • 请求可用的 AD/LDAP server 列表。
  • 根据优先级和权重选择合适的目标。

下面的配置示例假定 AD/LDAP server 地址设为 example.com,SRV 记录协议为 _tcp

对于以 _ldap 开头的 SRV 记录名称,指定 ldap。 构造出的 DNS SRV 记录名称类似如下:

_ldap._tcp.example.com

对于以 _ldaps 开头的 SRV 记录名称,指定 ldaps。 构造出的 DNS SRV 记录名称类似如下:

_ldaps._tcp.example.com

如果你的 DNS SRV 记录名称使用了其他 service 或 protocol 名称,请指定 on, 并将完整记录名称作为 LDAP server 地址提供。 例如:_ldapserver._specialtcp.example.com

有关 DNS SRV 记录的更多信息,请参见 DNS SRV Records for LDAP

说明

DNS SRV 记录配置中的 server 地址

指定的 server 名称 不得 包含端口号。 这与标准 AD/LDAP 配置不同,后者要求提供端口号。

关于如何配置 AD/LDAP server 地址,请参见 server_addrMINIO_IDENTITY_LDAP_SERVER_ADDR

该参数对应环境变量 MINIO_IDENTITY_LDAP_SRV_RECORD_NAME

tls_skip_verify

mc-cmd

Optional

指定 on 可在不验证的情况下信任 AD/LDAP server 的 TLS 证书。 如果 AD/LDAP server 的 TLS 证书由不受信任的证书颁发机构签名 (例如自签名),则可能需要此选项。

默认值为 off

该参数对应环境变量 MINIO_IDENTITY_LDAP_TLS_SKIP_VERIFY

全局标志

此命令支持 全局标志 中的任意选项。

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

8 - mc idp ldap policy attach

描述

mc idp ldap policy attach 命令将一个或多个策略附加到实体。

以下示例将策略 userpolicy 附加到 myminio 部署中的用户 bobfisher

mc idp ldap policy attach myminio                                                  \
                          userpolicy                                               \
                          --user='uid=bobfisher,ou=people,ou=hwengg,dc=min,dc=io'

该命令的语法如下:

mc [GLOBALFLAGS] idp ldap policy attach             \
                                 POLICYNAME         \
                                 [POLICY2] ...      \
                                 ALIAS              \
                                 [--user=`USER`]    \
                                 [--group=`GROUP`]
  • ALIAS 替换为 MinIO 部署的 alias,用于配置 AD/LDAP 集成。

  • POLICYNAME 替换为要附加到实体的策略。 你可以列出多个要附加到实体的策略。

  • 必须使用 --user--group 标志之一。 在命令中每个标志只能使用一次。 不能在同一命令中同时使用这两个标志。

  • 方括号 [] 表示可选参数。

  • 同一行中的参数彼此相互依赖。

  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

MinIO 部署的 alias,其中包含要附加策略的实体。

例如:

mc idp ldap policy attach myminio                                                  \
                          userpolicy                                               \
                          --user='uid=bobfisher,ou=people,ou=hwengg,dc=min,dc=io'

示例

以下示例将两个策略 policy1policy2 附加到 myminio 部署中的 projectb 组:

mc idp ldap policy attach myminio                                                 \
                          policy1                                                 \
                          policy2                                                 \
                          --group='cn=projectb,ou=groups,ou=swengg,dc=min,dc=io'

全局标志

此命令支持 全局标志 中的任意选项。

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

9 - mc ilm restore

语法

mc ilm restore 命令会为归档在远程层上的对象创建一个临时副本。 默认情况下,该副本会在 1 天后自动过期。

使用此命令可让应用程序通过 MinIO 部署访问分层对象(例如“热层”)。 归档对象会保留在远程层,而临时副本会成为该对象的 HEAD

说明

新增: mc

RELEASE.2023-04-12T02-21-51Z

使用 mc stat 可显示已恢复对象是从本地临时副本读取还是从远程层读取。 当前正在从远程层恢复的对象会显示状态 Ongoing : true

以下命令将远程层上一个已转储对象的副本恢复到 myminio MinIO 部署:

mc ilm restore myminio/mybucket/object.txt

该命令的语法如下:

mc [GLOBALFLAGS] ilm restore         \
                 [--days "int" ]     \
                 [--recursive]       \
                 [--vid "string"]    \
                 [--versions]        \
                 [--enc-c "string"]  \
                 ALIAS
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

要恢复的归档对象对应的 MinIO alias、存储桶和路径。

mc ilm restore myminio/mybucket/object.txt
--days

mc-cmd

Optional

MinIO 使已恢复归档对象副本过期前的天数。

--enc-c

mc-cmd

Optional

使用客户端管理的密钥,通过服务端 SSE-C 加密 对对象进行加密或解密。

该参数接受格式为 KEY=VALUE 的键值对。

KEY

对象的完整路径,格式为 alias/bucket/path/object.ext

你也可以只指定顶层路径,以便对该路径下的所有操作使用同一个加密密钥。

VALUE

指定用于 SSE-C 加密的密钥,可以是 32 字节 RawBase64 编码密钥, 也可以是 64 字节十六进制编码密钥。

Raw Base64 编码 不接受= 填充的密钥。 请去掉填充,或使用支持 RAW 格式的 Base64 编码器。

  • KEY - 对象的完整路径,格式为 alias/bucket/path/object
  • VALUE - 用于加密对象的 32 字节 RAW Base64 编码数据密钥。

例如:

# RawBase64-Encoded string "mybucket32byteencryptionkeyssec"
--enc-c "myminio/mybucket/prefix/object.obj=bXlidWNrZXQzMmJ5dGVlbmNyeXB0aW9ua2V5c3NlYwo"

你可以通过重复该参数来指定多个加密密钥。

也可以指定某个前缀路径,对该路径下所有匹配对象应用加密:

--enc-c "myminio/mybucket/prefix/=bXlidWNrZXQzMmJ5dGVlbmNyeXB0aW9ua2V5c3NlYwo"
说明

说明

MinIO 强烈不建议在生产负载中使用 SSE-C 加密。 请改用 --enc-kms 参数启用 SSE-KMS,或使用 --enc-s3 参数启用 SSE-S3。

--recursive, r

mc-cmd

Optional

恢复指定前缀下的所有对象。

--versions

mc-cmd

Optional

恢复远程层上该对象的所有版本。

--version-id, vid

mc-cmd

Optional

恢复远程层上该对象的指定版本。

全局参数

此命令支持 全局标志 中的任意选项。

示例

恢复归档对象

以下命令恢复一个已归档到远程层的对象:

mc ilm restore myminio/mybucket/object.txt

恢复指定版本的归档对象

以下命令恢复一个已归档到远程层的指定对象版本:

mc ilm restore --vid "VERSIONID" myminio/mybucket/object.txt

恢复存储桶前缀下的所有归档对象

以下命令恢复远程层上指定前缀下归档的所有对象:

mc ilm restore --recursive myminio/mybucket/data/

行为

已恢复对象自动过期

MinIO 会在指定天数后自动使已恢复对象副本过期(默认:1 天)。

已恢复对象会成为 HEAD

无论该对象命名空间的版本控制历史如何,已恢复的对象副本都会成为 HEAD。 在本地副本存在期间,这可能导致应用程序返回“过时”数据。

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

10 - mc ilm rule add

说明

变更: RELEASE.2022-12-24T15-21-38Z

mc ilm rule rm 替代 mc ilm add

语法

mc ilm rule add 命令用于向存储桶添加对象生命周期管理规则。

该命令支持添加 迁移(分层)过期 两类生命周期管理规则。

以下命令将新的生命周期管理规则添加到 myminio 部署上的 mydata 存储桶:

mc ilm rule add --expire-days 90 --noncurrent-expire-days 30  myminio/mydata

mc ilm rule add --expire-delete-marker myminio/mydata

mc ilm rule add --transition-days 30 --transition-tier "COLDTIER" myminio/mydata

mc ilm rule add --noncurrent-transition-days 7 --noncurrent-transition-tier "COLDTIER"

已配置规则的效果如下:

  • 删除超过 90 天的对象
  • 对象变为非当前版本后 30 天删除
  • 如果对象没有其他剩余版本,则删除 DeleteMarker 墓碑。
  • 将超过 30 天的对象迁移到 COLDTIER 远程层。
  • 对象变为非当前版本后 7 天迁移到 COLDTIER 远程层。

命令语法如下:

mc [GLOBALFLAGS] ilm rule add                               \
                 [--prefix string]                          \
                 [--tags string]                            \
                 [--expire-days "integer"]                  \
                 [--expire-all-object-versions]             \
                 [--expire-delete-marker]                   \
                 [--transition-days "string"]               \
                 [--transition-tier "string"]               \
                 [--noncurrent-expire-days "integer"]       \
                 [--noncurrent-expire-newer "integer"]      \
                 [--noncurrent-transition-days "integer"]   \
                 [--noncurrent-transition-tier "string"]    \
                 [--site-gt "string"]                       \
                 [--size-lt "string"]                       \
                 ALIAS
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

MinIO 部署上用于添加对象生命周期管理规则的 alias 和存储桶。

例如:

mc ilm rule add myminio/mydata
--prefix

mc-cmd

Optional

将管理规则限定到特定对象前缀。

例如:

mc ilm rule add --prefix "meetingnotes/" myminio/mydata --expire-days "90"

该命令会创建一条规则:对于 myminio ALIAS 上 mydata 存储桶中具有 meetingnotes/ 前缀的对象,在 90 天后过期。

--tags

mc-cmd

Optional

一个或多个以 & 分隔的键值对,用于描述对象标签,以筛选生命周期配置规则适用的对象。

此选项与以下选项互斥:

--expire-all-object-versions

mc-cmd

Optional

说明

新增: mc

RELEASE.2024-02-24T01-33-20Z

使对象的当前版本和非当前版本全部过期。 与 --expire-days 选项结合使用,以指定扫描器进程在多少天后删除对象的所有版本。

scanner 处理该命令后,部署中将不再保留该对象的任何版本。

说明

变更: MinIO

RELEASE.2024-05-01T01-11-10Z

此标志 适用于最新版本 不是 删除标记的对象。

--expire-days

mc-cmd

Optional

对象创建后保留的天数。 达到指定天数后,MinIO 会将对象标记为待删除。 使用整数指定天数,例如 30 表示 30 天。

对于启用版本控制的存储桶,过期规则仅适用于对象的 当前 版本。 使用 --noncurrent-expire-days--expire-all-object-versions 标志,可将过期行为应用于对象的非当前版本。

MinIO 使用 scanner process 根据所有已配置的生命周期管理规则检查对象。 在高 IO 负载或系统资源受限时,扫描变慢可能导致生命周期管理规则应用延迟。 更多信息请参见 生命周期管理对象扫描器

与以下选项互斥:

关于对象过期的完整文档,请参见 对象过期对象删除

--expire-delete-marker

mc-cmd

Optional

指定该选项后,MinIO 会移除没有剩余对象版本的对象删除标记。 具体来说,删除标记是该对象唯一剩余的“版本”。

此选项与以下选项互斥:

MinIO 使用 scanner process 根据所有已配置的生命周期管理规则检查对象。 在高 IO 负载或系统资源受限时,扫描变慢可能导致生命周期管理规则应用延迟。 更多信息请参见 生命周期管理对象扫描器

关于对象过期的完整文档,请参见 对象过期对象删除

--transition-days

mc-cmd

Optional

对象创建后经过多少个日历日,MinIO 将对象标记为可迁移。 MinIO 会将对象迁移到由 --transition-tier 指定的远程层。 使用整数指定天数,例如 30 表示 30 天。 如果远程层是另一个 MinIO 部署,可将该值设为 0,使新对象立即具备迁移到远程层的资格。

对于启用版本控制的存储桶,迁移规则仅适用于对象的 当前 版本。 使用 --noncurrent-transition-days 选项可将迁移行为应用于对象的非当前版本。

需要同时指定 --transition-tier

MinIO 使用 scanner process 根据所有已配置的生命周期管理规则检查对象。 在高 IO 负载或系统资源受限时,扫描变慢可能导致生命周期管理规则应用延迟。 更多信息请参见 生命周期管理对象扫描器

关于对象迁移的完整文档,请参见 对象迁移(”Tiering”)

--transition-tier

mc-cmd

Optional

MinIO transition objects 的目标远程层。 指定由 mc ilm tier add 创建的现有远程层。

当指定 --transition-days 时,此项为必需。

--noncurrent-expire-days

mc-cmd

Optional

对象版本变为 非当前 后(即该对象已有其他版本成为 HEAD)保留的天数。 达到指定天数后,MinIO 会将非当前对象版本标记为待删除。

此选项与 S3 NoncurrentVersionExpiration 操作行为一致。

MinIO 使用 scanner process 根据所有已配置的生命周期管理规则检查对象。 在高 IO 负载或系统资源受限时,扫描变慢可能导致生命周期管理规则应用延迟。 更多信息请参见 生命周期管理对象扫描器

--noncurrent-transition-days

mc-cmd

Optional

对象在成为非当前版本后(即被同一对象的更新版本替换)经过多少天,MinIO 将该对象版本标记为可迁移。 当系统主机日期时间超过该日历日期时,MinIO 会将对象迁移到 --transition-tier 指定的远程层。

此选项对非版本化存储桶无效。 需要同时指定 --noncurrent-transition-tier

此选项与 S3 NoncurrentVersionTransition 操作行为一致。

MinIO 使用 scanner process 根据所有已配置的生命周期管理规则检查对象。 在高 IO 负载或系统资源受限时,扫描变慢可能导致生命周期管理规则应用延迟。 更多信息请参见 生命周期管理对象扫描器

--noncurrent-transition-tier

mc-cmd

Optional

MinIO transitions noncurrent objects versions 的目标远程层。 指定由 mc ilm tier add 创建的远程层。

--noncurrent-expire-newer

mc-cmd

Optional

要保留的非当前对象版本最大数量,按从新到旧排序。

使用此标志可按先进先出方式保留文件的一定数量历史版本。 在保留达到最大非当前版本数后,MinIO 会将其余更旧的非当前对象版本标记为可过期。

下表基于 --noncurrent-expire-newer 3 展示对象版本数量及其过期资格:

v5(当前版本)

当前版本不受 ILM 规则影响。

v4

保留

v3

保留

v2

保留

v1

标记为过期

MinIO 会保留当前版本 v5。 MinIO 还会从最新版本开始,保留接下来的 3 个非当前版本。 这意味着 MinIO 会将 v4v3v2 作为要保留的三个非当前版本。

v1 是第四个非当前版本,超出非当前版本保留上限,因此 MinIO 会将 v1 标记为过期。

更新此标志的数值只会影响尚未标记的对象版本。 对于已标记为过期的版本,即使增加保留数量也不会改变。

MinIO 使用 scanner process 根据所有已配置的生命周期管理规则检查对象。 在高 IO 负载或系统资源受限时,扫描变慢可能导致生命周期管理规则应用延迟。 更多信息请参见 生命周期管理对象扫描器

--size-gt

mc-cmd

Optional

说明

新增: mc

RELEASE.2023-12-02T02-03-28Z

选择大于指定值的对象。 以数字加单位输入该值,例如 5GiB 表示 5 gibibytes。

有效单位包括:

后缀 单位大小
k KB(千字节,1000 字节)
m MB(兆字节,1000 KB)
g GB(吉字节,1000 MB)
t TB(太字节,1000 GB)
ki KiB(kibibyte,1024 字节)
mi MiB(mebibyte,1024 KiB)
gi GiB(gibibyte,1024 MiB)
ti TiB(tebibyte,1024 GiB)
--size-lt

mc-cmd

Optional

说明

新增: mc

RELEASE.2023-12-02T02-03-28Z

选择小于指定值的对象。 以数字加单位输入该值,例如 1M 表示 1 megabyte。

有效单位包括:

后缀 单位大小
k KB(千字节,1000 字节)
m MB(兆字节,1000 KB)
g GB(吉字节,1000 MB)
t TB(太字节,1000 GB)
ki KiB(kibibyte,1024 字节)
mi MiB(mebibyte,1024 KiB)
gi GiB(gibibyte,1024 MiB)
ti TiB(tebibyte,1024 GiB)

全局标志

此命令支持 全局标志 中的任意选项。

示例

在指定天数后过期存储桶全部内容

mc ilm rule add--expire-all-object-versions--expire-days 标志配合使用,可在对象创建后经过指定天数后,将存储桶中的所有当前版本和非当前版本内容标记为过期:

mc ilm rule add ALIAS/PATH --expire-all-object-versions --expire-days "DAYS"
  • ALIAS 替换为 S3 兼容主机的 alias
  • PATH 替换为 S3 兼容主机上存储桶的路径。
  • DAYS 替换为每个对象过期前的天数。 例如,指定 30 表示对象在创建 30 天后过期。

将某前缀下的非当前对象版本迁移到不同层

mc ilm rule add--prefix--transition-tier 配合使用,可将对象较旧的非当前版本迁移到不同存储层。

mc ilm rule add --prefix "doc/" --transition-days "90" --transition-tier "MINIOTIER-1"  \
       --noncurrent-transition-days "45" --noncurrent-transition-tier "MINIOTIER-2"    \
       myminio/mybucket

该命令会检查 myminio 部署上 mybucket 存储桶中前缀为 doc/ 的内容。

  • 前缀下超过 90 天的当前对象会移动到 MINIOTIER-1 存储层。
  • 前缀下超过 45 天的非当前对象会移动到 MINIOTIER-2 存储层。
  • MINIOTIER-1MINIOTIER-2 均已通过 mc admin tier add 创建。

让某前缀下所有对象过期,并让当前版本比非当前版本保留更久

mc ilm rule add 命令与 --prefix--expire-days--noncurrent-expire-days 配合使用,可让对象的当前版本与非当前版本在不同时间过期。

mc ilm rule add --prefix "doc/" --expire-days "300" --noncurrent-expire-days "100" myminio/mybucket

该命令会检查 myminio 部署上 mybucket 存储桶中前缀为 doc/ 的内容。

  • 当前对象在 300 天后过期。
  • 非当前对象在 100 天后过期。

迁移前缀 /doc 下大于 1MiB 的非当前版本

mc ilm rule add 命令与 --prefix--size-gt--noncurrent-expire-days 配合使用,可让对象的当前版本与非当前版本在不同时间过期。

mc ilm rule add --prefix "doc/" --size-gt 1MiB --transition-days "90" --transition-tier "MINIOTIER-1" \
      --noncurrent-transition-days "45" --noncurrent-transition-tier "MINIOTIER-1" \
      myminio/mybucket/

该命令会检查 myminio 部署上 mybucket 存储桶中前缀为 doc/ 的内容。

该命令会选择以下对象:

  • 大于 1MiB 且超过 90 天的当前对象。
  • 大于 1MiB 且超过 45 天的非当前对象。

所选对象会迁移到 MINIOTIER-1

移除删除标记

以下命令会移除删除标记仅为对象唯一剩余版本的对象的删除标记。

mc ilm rule add ALIAS/PATH --expire-delete-marker
  • ALIAS 替换为 S3 兼容主机的 alias
  • PATH 替换为 S3 兼容主机上存储桶的路径。
说明

说明

若要删除最新版本为删除标记的对象的所有版本,包括删除标记本身,可考虑使用 batch expiration

所需权限

有关添加规则所需权限,请参见父命令中的 required permissions

行为

生命周期管理对象扫描器

MinIO 使用 scanner process 根据所有已配置的 生命周期管理规则检查对象。在高 IO 负载或 系统资源受限时,扫描变慢可能导致生命周期管理 规则应用延迟。更多信息请参见 生命周期管理对象扫描器

过期与迁移

MinIO 支持在同一个存储桶或存储桶前缀中同时指定过期和迁移规则。 无论对象的迁移状态如何,MinIO 都可以对其执行过期规则。 使用 mc ilm rule ls 查看当前已配置的对象生命周期 管理规则,以评估过期与迁移规则之间可能的相互影响。

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

11 - mc ilm tier add

说明

变更: RELEASE.2022-12-24T15-21-38Z

mc ilm tier add 替代了 mc admin tier add

描述

mc ilm tier add 命令在受支持的存储服务上创建一个新的远程存储层。

完整列表请参见 对象转换

支持的 S3 服务

mc ilm tier add 支持以下 S3 兼容服务作为对象分层的远程目标:

  • MinIO
  • Amazon S3
  • Google Cloud Storage
  • Azure Blob Storage

权限

在为对象转换生命周期管理规则创建远程层的集群上,MinIO 需要以下管理权限:

例如,以下策略授予在集群中任意存储桶上配置对象转换生命周期管理规则的权限:

{
   "Version": "2012-10-17",
   "Statement": [
      {
            "Action": [
               "admin:SetTier",
               "admin:ListTier"
            ],
            "Effect": "Allow",
            "Sid": "EnableRemoteTierManagement"
      },
      {
            "Action": [
               "s3:PutLifecycleConfiguration",
               "s3:GetLifecycleConfiguration"
            ],
            "Resource": [
                        "arn:aws:s3:::*"
            ],
            "Effect": "Allow",
            "Sid": "EnableLifecycleManagementRules"
      }
   ]
}

语法

以下示例在 myminio 部署上创建一个名为 WARM-MINIO-TIER 的新远程层。 该命令为位于主机名 https://warm-minio.com 的远程 MinIO 部署创建一个层。

 mc ilm tier add minio myminio WARM-MINIO-TIER                     \
                               --endpoint https://warm-minio.com   \
                               --access-key ACCESSKEY              \
                               --secret-key SECRETKEY              \
                               --bucket mybucket                   \
                               --prefix myprefix/

myminio 部署上的生命周期管理规则可以使用该新层,将对象转换到远程位置 mybucket 存储桶中的 myprefix/ 前缀下。

命令语法如下:

mc ilm tier add TIER_TYPE                    \
                TARGET                       \
                TIER_NAME                    \
                --bucket value               \
                [--endpoint string]          \
                [--region string]            \
                [--access-key value^]        \
                [--secret-key value^]        \
                [--use-aws-role^]            \
                [--aws-role-arn^]            \
                [--aws-web-identity-file^]   \
                [--azure-sp-tenant-id^]      \
                [--azure-sp-client-id^]      \
                [--azure-sp-client-secret^]  \
                [--account-name value^]      \
                [--account-key value^]       \
                [--credentials-file value^]  \
                [--prefix value]             \
                [--storage-class value]

注意: 每个受支持的存储供应商使用不同的认证方式。 用于认证的标志因存储供应商而异。 详见下方 TIER_TYPE

  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

该命令接受以下参数:

TIER_TYPE

mc-cmd

Required

MinIO 将对象转换到的云服务提供商存储后端(”Tier”)。 指定以下受支持值之一:

minio

使用远程 MinIO 部署作为新 Tier 的存储后端。

还需要指定以下参数:

s3

使用 AWS S3 作为新 Tier 的存储后端。

还需要指定以下参数:

azure

使用 Azure Blob Storage 作为新 Tier 的存储后端。

还需要指定以下参数:

gcs

使用 GCP Cloud Storage 作为新 Tier 的存储后端。

还需要指定以下参数:

TARGET

mc-cmd

Required

命令在该已配置 MinIO 部署的 alias 上创建新的远程层。 随后你可以使用 mc ilm rule add 并指定该新远程层来创建新规则。

TIER_NAME

mc-cmd

Required

与新远程层关联的名称。 该名称 必须 在 MinIO 集群所有已配置层中唯一。

必须 使用全大写指定 tier,例如 WARM_TIER

--endpoint

mc-cmd

Optional

S3 或 MinIO 存储的 URL endpoint。 URL endpoint 必须 解析到 TIER_TYPE 指定的提供方。

s3minio tier 类型为必需,对 azure 为可选。 对 TIER_TYPE 的任何其他取值,该选项均无效。

--access-key

mc-cmd

Optional

远程 S3minio tier 类型中某个用户的 access key。 该用户必须具有对远程存储桶或存储桶前缀执行 read/write/list/delete 操作的权限。

TIER_TYPEs3minio 时必需。 对 TIER_TYPE 的任何其他取值,该选项均无效。

--secret-key

mc-cmd

Optional

远程 s3minio tier 类型中某个用户的 secret key。

TIER_TYPEs3minio 时必需。 对 TIER_TYPE 的任何其他取值,该选项均无效。

--account-name

mc-cmd

Optional

用作远程存储资源的 Storage Account

TIER_TYPEazure 时必需。 对 TIER_TYPE 的任何其他取值,该选项均无效。

MinIO 支持更改与 Azure 远程 tier 关联的存储账户名。 Azure 存储后端绑定到存储账户,因此更改该值会更换存储后端,并导致无法访问已转换到原账户/后端的任何对象。

--account-key

mc-cmd

Optional

与远程 Azure tier 关联的 --account-name 对应的共享 account key。

该 account key 必须绑定具备所需 权限 的 Azure 策略。

TIER_TYPEazure 时必需。 对 TIER_TYPE 的任何其他取值,该选项均无效。

--credentials-file

mc-cmd

Optional

远程 Google Cloud Storage tier 中用户使用的 credential file。 该用户必须具有对远程存储桶或存储桶前缀执行 read/write/list/delete 操作的权限。

TIER_TYPEgcs 时必需。 对 TIER_TYPE 的任何其他取值,该选项均无效。

--bucket

mc-cmd

Required

MinIO 将对象转换到的远程 tier 存储桶。

对于 azure 远程 tier,该值对应 Container name

--prefix

mc-cmd

Optional

MinIO 将对象转换到指定 --bucket 的前缀路径。

省略此字段可将对象转换到存储桶根路径。

--storage-class

mc-cmd

Optional

MinIO 应用于转换到远程存储桶对象的 storage class(在 Microsoft Azure 中称为 “access tier”)。

应用于 MinIO 转换到远程存储桶对象的 storage class。 MinIO 分层行为依赖远程存储在请求后立即返回对象(毫秒到秒级)。 因此 MinIO 无法 支持需要 rehydration、等待周期或手动干预的远程存储。

选择与 TIER_TYPE 对应的选项卡,查看各层支持的值:

  • STANDARD 推荐
  • REDUCED

更多信息请参见 纠删码存储类

  • STANDARD
  • STANDARD-IA
  • ONEZONE-IA

更多信息请参见 使用 Amazon S3 存储类

  • STANDARD
  • NEARLINE
  • COLDLINE

更多信息请参见 GCS 存储类

  • Hot
  • Cool

更多信息请参见 Blob 数据的 Hot、Cool 和 Archive 访问层

若省略,对象将使用远程存储桶定义的默认存储类。

--region

mc-cmd

Optional

指定 TIER_TYPE 的 S3 后端区域,例如 us-west-1

该选项仅在 TIER_TYPEs3minio 时生效。 对 TIER_TYPE 的任何其他取值,该选项均无效。

--use-aws-role

mc-cmd

Optional

使用本地配置的 AWS Role 的访问权限。

该选项仅在 TIER_TYPEs3minio 时生效。 对 TIER_TYPE 的任何其他取值,该选项均无效。

--aws-role-arn

mc-cmd

Optional

转换对象时要使用的 AWS S3 角色名称。

该选项仅在 TIER_TYPEs3 源端是 Amazon EKS 上的 MinIO pod 时生效。

--aws-web-identity-file

mc-cmd

Optional

指定转换对象时使用的 web identity token 文件。

该选项仅在 TIER_TYPEs3 源端是 Amazon EKS 上的 MinIO pod 时生效。

--azure-sp-tenant-id

mc-cmd

Optional

用于登录 Azure 存储的 service principal account 的 Tenant ID。

该选项仅在 TIER_TYPEazure 且使用 service principal 身份登录时生效。 对 TIER_TYPE 的任何其他取值,该选项均无效。

--azure-sp-client-id

mc-cmd

Optional

用于登录 Azure 存储的 service principal account 的 Client ID。

该选项仅在 TIER_TYPEazure 且使用 service principal 身份登录时生效。 对 TIER_TYPE 的任何其他取值,该选项均无效。

--azure-sp-client-secret

mc-cmd

Optional

用于登录 Azure 存储的 service principal account 的 client secret。

该选项仅在 TIER_TYPEazure 且使用 service principal 身份登录时生效。 对 TIER_TYPE 的任何其他取值,该选项均无效。

全局标志

此命令支持 全局标志 中的任意选项。

示例

配置一个 Tier 以将对象转换到 MinIO 部署

以下示例在本地部署上创建一个新层,已配置规则可使用该层将对象转换到独立的远程 MinIO 部署。

mc ilm tier add minio myminio WARM-MINIO-TIER --endpoint https://warm-minio.com \
     --access-key ACCESSKEY --secret-key SECRETKEY --bucket mybucket --prefix myprefix/

该命令在 myminio 部署上为 minio 类型远程存储创建一个名为 WARM-MINIO-TIER 的新层。

  • 远程 MinIO 存储位于 https://warm-minio.com
  • 命令中包含了一个对该存储桶及前缀具备 read、write、list 和 delete 权限用户的凭据。
  • 该层会将对象转换到远程 MinIO 存储上的 mybucket 存储桶与 myprefix 前缀。

配置一个 Tier 以将对象转换到 Azure Blob Storage 位置

以下示例在本地部署上创建一个新层,已配置规则可使用该层将对象转换到 Azure Blob Storage。

mc ilm tier add azure myminio AZTIER --account-name ACCOUNT-NAME --account-key ACCOUNT-KEY \
     --bucket myazurebucket --prefix myazureprefix/

该命令在 myminio 部署上为 azure 类型远程存储创建一个名为 AZTIER 的新层。

  • 使用提供的 account name 和 key 访问远程 Azure 存储。
  • 该层会将对象转换到 Azure 存储上的 myazurebucket 存储桶与 myazureprefix 前缀。

配置一个 Tier 以将对象转换到 Google Cloud Storage

以下示例在本地部署上创建一个新层,已配置规则可使用该层将对象转换到 Google Cloud Storage。

 mc ilm tier add gcs myminio GCSTIER --credentials-file /path/to/credentials.json \
     --bucket mygcsbucket  --prefix mygcsprefix/

该命令在 myminio 部署上为 gcs 类型远程存储创建一个名为 GCSTIER 的新层。

  • 使用提供的 credentials file 访问远程 GCS 存储。
  • 该层会将对象转换到 GCS 存储上的 mygcsbucket 存储桶与 mygcsprefix 前缀。

配置一个 Tier 以将对象转换到 Amazon Simple Storage Service (S3)

以下示例在本地部署上创建一个新层,已配置规则可使用该层将对象转换到 S3 上的 STANDARD 存储。

 mc ilm tier add s3 myminio S3TIER --endpoint https://s3.amazonaws.com \
     --access-key ACCESSKEY --secret-key SECRETKEY --bucket mys3bucket --prefix mys3prefix/ \
     --storage-class "STANDARD" --region us-west-2

该命令在 myminio 部署上为 s3 类型远程存储创建一个名为 S3TIER 的新层。

  • S3 存储位于提供的 endpoint。
  • 使用提供的 access key 和 secret key 访问远程 S3 存储。
  • 该层会将对象转换到 GCS 存储上的 mys3bucket 存储桶与 mys3prefix 前缀。
  • 该层使用位于 us-west-2 S3 区域的 S3 STANDARD 存储类。

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

所需权限

有关添加 tier 所需的权限,请参见父命令中的 required permissions

12 - mc legalhold clear

语法

mc legalhold clear 命令会移除一个或多个对象当前的 legal hold 设置。

移除对象的 legal hold 不会 移除对象上已有的其他 GOVERNANCE 模式COMPLIANCE 模式 保留设置。

以下命令会移除 myminio MinIO 部署中 mydata 存储桶内 所有对象的 legal hold:

mc legalhold clear --recursive myminio/mydata

该命令的语法如下:

mc [GLOBALFLAGS] legalhold clear \
                 [--recursive]   \
                 [--rewind]      \
                 [--version-id]  \
                 ALIAS
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

MinIO alias 以及要移除 legal hold 的对象路径(可为单个或多个对象)。例如:

mc legalhold clear play/mybucket/myobjects/objects.txt
--recursive, r

mc-cmd

Optional

移除 ALIAS 指定存储桶或存储桶前缀下 所有对象的 legal hold。

--rewind

mc-cmd

Optional

指示 mc legalhold clear 仅对指定时间点存在的对象版本执行操作。

  • 如需回溯到过去的特定日期,请将该日期指定为 ISO8601 格式的时间戳。 例如:--rewind "2020.03.24T10:00"
  • 如需按时间长度回溯,请将该时长指定为 #d#hh#mm#ss 格式的字符串。 例如:--rewind "1d2hh3mm4ss"

--rewind 要求指定的 ALIAS 指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用 mc version 启用或禁用存储桶版本控制。

--version-id, vid

mc-cmd

Optional

指示 mc legalhold clear 仅对指定的对象版本执行操作。

--version-id 要求指定的 ALIAS 指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用 mc version 启用或禁用存储桶版本控制。

全局标志

此命令支持 全局标志 中的任意选项。

示例

使用 mc legalhold clear 获取对象的 legal hold 状态。 包含 --recursive 可返回存储桶内容的 legal hold 状态:

mc legalhold clear [--recursive] ALIAS/PATH
  • ALIAS 替换为 S3 兼容主机的 alias
  • PATH 替换为 S3 兼容主机上的 存储桶或对象路径。若指定的是存储桶或存储桶前缀路径,请包含 --recursive 选项。

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

13 - mc license info

描述

mc license info 命令用于显示 MinIO 部署的许可证状态信息。 具体来说,用于确认该部署使用的是 AGPLv3 开源许可证,还是 MinIO Commercial License

你必须在 MinIO MinIO SUBNET 中注册部署,才能激活商业许可证。

例如,对于未注册的部署,该命令会返回以下信息:

You are using GNU AFFERO GENERAL PUBLIC LICENSE Version 3 (https://www.gnu.org/licenses/agpl-3.0.txt)

If you are building proprietary applications, you may want to choose the commercial license
included as part of the Standard and Enterprise subscription plans. (https://min.io/signup?ref=mc)

Applications must otherwise comply with all the GNU AGPLv3 License & Trademark obligations.

使用 mc license register 将你的部署关联到 SUBNET 账户。 如果你尚未注册 SUBNET,请参阅 Registration 页面。

示例

显示别名为 minio1 的部署当前许可证

mc license info minio1

如果部署使用的是已过期的 MinIO Commercial License,该命令会输出错误信息。

语法

该命令的语法如下:

mc [GLOBALFLAGS] license info       \
                         ALIAS      \
                         [--airgap]

参数

ALIAS

mc-cmd

Required

MinIO 部署的 alias

--airgap

mc-cmd

Optional

在运行 minio client 的客户端机器无法通过网络访问 SUBNET 的环境中使用(例如 airgapped、受防火墙限制或类似配置),以显示如何将部署注册到 SUBNET 的说明。

如果部署处于 airgapped 环境,但本地设备具备网络访问能力,则无需使用 --airgap 标志。

全局选项

此命令支持 全局标志 中的任意选项。

14 - mc replicate add

说明

变更: RELEASE.2022-12-24T15-21-38Z

mc replicate add 替代了 mc admin bucket remote add 命令。

MinIO 会根据给定的文件路径或资源位置(例如 IP 或 DNS 地址)自动创建远程目标。 定义远程目标的用户不再需要为远程存储桶确定 ARN。

语法

mc replicate add 命令会为 MinIO 部署中的存储桶创建一条新的 服务端复制 规则。

远程存储桶 必须 位于与本地部署运行相同 MinIO 版本的 MinIO 部署上。

说明

说明

mc mirror 仅同步对象的当前版本,而 mc replicate 会同步对象的所有版本、版本信息和元数据。

创建规则后,MinIO 部署会自动开始将新对象同步到远程 MinIO 部署。 你也可以选择配置对现有对象、删除操作和已完全删除对象的同步。

以下命令为 myminio MinIO 部署上的 mydata 存储桶添加一条新的复制规则:

mc replicate add                                                     \
   --remote-bucket https://user:[email protected]:9001/bucket  \
   --replicate "delete,delete-marker,existing-objects"               \
   myminio/mydata

该复制规则会将带版本的删除操作、删除标记和现有对象同步到远程 MinIO 部署。

说明

变更: mc

RELEASE.2024-03-03T00-13-08Z

你可以在 --remote-bucket 参数中使用已配置的 ALIAS。

该命令语法如下:

mc [GLOBALFLAGS] replicate add                     \
                 --remote-bucket string          \
                 [--bandwidth "string"]            \
                 [--disable]                       \
                 [--disable-proxy]                 \
                 [--healthcheck-seconds integer]   \
                 [--id "string"]                   \
                 [--limit-upload "string"]         \
                 [--limit-download "string"]       \
                 [--path "string"]                 \
                 [--region "string"]               \
                 [--replicate "string"]            \
                 [--storage-class "string"]        \
                 [--sync]                          \
                 [--tags "string"]                 \
                 [--priority int]                  \
                 ALIAS
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

MinIO 部署的 alias,以及要在其上创建复制规则的存储桶或存储桶前缀的完整路径。 例如:

mc replicate add --remote-bucket https://user:[email protected]:9001/bucket play/mybucket
--remote-bucket

mc-cmd

Required

说明

变更: mc

RELEASE.2024-03-03T00-13-08Z

--remote-bucket 支持指定已有的 alias

指定远程位置的凭证、目标部署和存储桶。 该值可以是 IP 地址、URL 或 alias/bucket。

例如,基于 URL 的目标可能如下所示:

https://user:[email protected]:9001/bucket

基于 alias 的目标可能如下所示:

--remote-bucket minio-target/my-bucket
--bandwidth

mc-cmd

Optional

将带宽速率限制为不超过指定值,单位可为 KiB/s、MiB/s 或 GiB/s。 有效单位包括:

  • B 表示 bytes
  • K 表示 kilobytes
  • G 表示 gigabytes
  • T 表示 terabytes
  • Ki 表示 kibibytes
  • Gi 表示 gibibytes
  • Ti 表示 tebibytes

例如,要将带宽速率限制为不超过 1 GiB/s,可使用以下参数:

--limit-upload 1Gi

若未指定,MinIO 不会限制带宽速率。

--disable

mc-cmd

Optional

以“disabled”状态创建复制规则。 在使用 mc replicate update 将其启用之前,MinIO 不会按该规则开始复制对象。

在复制禁用期间创建的对象,在启用规则后不会立即具备复制资格。 你必须在传给 mc replicate update --replicate 的复制功能列表中包含 "existing-objects",以显式启用现有对象复制。 更多信息请参见 现有对象的复制

--disable-proxy

mc-cmd

Optional

在定义存储桶之间的 active-active 复制时,不使用代理。

默认情况下,MinIO 使用代理。

--healthcheck-seconds

mc-cmd

Optional

两次远程存储桶健康检查之间的时间间隔(秒)。

若未指定,MinIO 使用 60 秒间隔。

--id

mc-cmd

Optional

为复制规则指定唯一 ID。 如果未指定,MinIO 会自动生成一个 ID。

--limit-download

mc-cmd

Optional

将下载速率限制为不超过指定值,单位可为 KiB/s、MiB/s 或 GiB/s。 有效单位包括:

  • B 表示 bytes
  • K 表示 kilobytes
  • G 表示 gigabytes
  • T 表示 terabytes
  • Ki 表示 kibibytes
  • Gi 表示 gibibytes
  • Ti 表示 tebibytes

例如,要将下载速率限制为不超过 1 GiB/s,可使用以下参数:

--limit-download 1G

若未指定,MinIO 使用不限速的下载速率。

--limit-upload

mc-cmd

Optional

将上传速率限制为不超过指定值,单位可为 KiB/s、MiB/s 或 GiB/s。 有效单位包括:

  • B 表示 bytes
  • K 表示 kilobytes
  • G 表示 gigabytes
  • T 表示 terabytes
  • Ki 表示 kibibytes
  • Gi 表示 gibibytes
  • Ti 表示 tebibytes

例如,要将上传速率限制为不超过 1 GiB/s,可使用以下参数:

--limit-upload 1G

若未指定,MinIO 使用不限速的上传速率。

--path

mc-cmd

Optional

为远程存储桶启用 path-style 查找支持。

有效值包括:

  • on - 使用路径查找来定位远程存储桶
  • off - 使用资源定位符风格(如域名或 IP 地址)查找来定位远程存储桶
  • auto - 由 MinIO 自动识别用于定位远程存储桶的正确查找类型

未定义时,MinIO 使用 auto 值。

--priority

mc-cmd

Optional

指定复制规则的整数优先级。 该值 必须 在源存储桶的所有其他规则中保持唯一。 值越高表示优先级 越高

默认值为 0

--region

mc-cmd

Optional

要将内容复制到的目标存储桶区域。

--replicate

mc-cmd

Optional

指定一个由逗号分隔的值列表,以启用扩展复制功能。

  • delete - 指示 MinIO 将 DELETE 操作 复制到目标存储桶。

  • delete-marker - 指示 MinIO 将删除标记复制到目标存储桶。

  • existing-objects - 指示 MinIO 复制在启用复制前创建的对象,或在复制暂停期间创建的对象。

  • metadata-sync - 指示 MinIO 为每个对象复制元数据。 仅适用于 active-active 复制场景。

    省略此值会使 MinIO 停止将仅元数据变更回传到源端。

若未指定,MinIO 会同步所有选项。

--storage-class

mc-cmd

Optional

指定应用到复制对象上的 MinIO storage class

--sync

mc-cmd

Optional

为该远程目标启用同步复制。

默认情况下,MinIO 使用异步复制。

--tags

mc-cmd

Optional

指定一个或多个以和号 & 分隔的键值对标签,MinIO 用其筛选要复制的对象。 例如:

mc replicate add --tags "TAG1=VALUE&TAG2=VALUE&TAG3=VALUE" ALIAS

MinIO 会将复制规则应用到标签集合 包含指定复制标签的任何对象。

全局参数

此命令支持 全局标志 中的任意选项。

示例

配置存储桶复制

以下 mc replicate add 命令会创建一个复制配置,将所有新对象、现有对象、删除操作和删除标记同步到远程目标:

mc replicate add myminio/mybucket \
   --remote-bucket https://user:[email protected]/remotebucket \
   --replicate "delete,delete-marker,existing-objects"
  • myminio/mybucket 替换为 ALIAS 及要创建复制配置的完整存储桶路径。
  • --remote-bucket 的值替换为远程目标的 URL 或路径。 如果使用文件路径格式的位置,请使用 --path on 选项。
  • --replicate 参数会指示 MinIO 将所有删除操作、删除标记和现有对象复制到远程端。 关于复制行为的更多信息,请参见 删除操作的复制现有对象的复制

为历史数据记录配置存储桶复制

以下 mc replicate add 命令会创建一个新的存储桶复制配置,将所有新对象和现有对象同步到远程目标:

mc replicate add myminio/mybucket \
   --remote-bucket https://user:[email protected]/remotebucket \
   --replicate "existing-objects"
  • myminio/mybucket 替换为 ALIAS 及要创建复制配置的完整存储桶路径。
  • --remote-bucket 的值替换为远程目标的位置。 如果使用文件路径格式的位置,请使用 --path on 选项。
  • --replicate 参数会指示 MinIO 将所有现有对象复制到远程端。 关于复制行为的更多信息,请参见 现有对象的复制

生成的远程副本表示远程端对象的历史记录,源端的删除操作不会影响该远程副本。

行为

服务端复制要求源端和目标端均为 MinIO

MinIO 服务端复制仅适用于 MinIO 部署之间。 源端和目标端部署都 必须 运行 MinIO。

若要在任意兼容 S3 的服务之间配置复制,请使用 mc mirror

在源存储桶和目标存储桶上启用版本控制

MinIO 依赖版本控制提供的不可变性保护,在源端与复制目标之间同步对象。

在开始此流程前,使用 mc version enable 命令在源存储桶和目标存储桶 两端 启用版本控制:

mc version enable ALIAS/PATH
  • ALIAS 替换为 MinIO 部署的 alias
  • PATH 替换为要启用版本控制的存储桶。

所需权限

MinIO 强烈建议专门创建用于支持存储桶复制操作的用户。 关于向 MinIO 部署添加用户和策略的更完整文档,请参见 mc admin usermc admin policy

以下策略提供在部署上配置并启用复制所需的权限。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "admin:SetBucketTarget",
                "admin:GetBucketTarget",
                "admin:ListBatchJobs",
                "admin:DescribeBatchJob",
                "admin:StartBatchJob",
                "admin:CancelBatchJob"
            ],
            "Effect": "Allow",
            "Sid": "EnableRemoteBucketConfiguration"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetReplicationConfiguration",
                "s3:ListBucket",
                "s3:ListBucketMultipartUploads",
                "s3:GetBucketLocation",
                "s3:GetBucketVersioning",
                "s3:GetObjectRetention",
                "s3:GetObjectLegalHold",
                "s3:PutReplicationConfiguration"
            ],
            "Resource": [
                "arn:aws:s3:::*"
            ],
            "Sid": "EnableReplicationRuleConfiguration"
        }
    ]
}
  • "EnableRemoteBucketConfiguration" 语句授予创建远程目标以支持复制的权限。
  • "EnableReplicationRuleConfiguration" 语句授予在存储桶上创建复制规则的权限。 "arn:aws:s3:::* 资源将复制权限应用到源部署上的 任意 存储桶。 你可以按需将用户策略限制到特定存储桶。

使用 mc admin policy create 将该策略添加到每个作为复制源的部署。 使用 mc admin user add 在部署上创建用户,并使用 mc admin policy attach 将策略关联到该新用户。

以下策略提供将复制数据同步 该部署所需的权限。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetReplicationConfiguration",
                "s3:ListBucket",
                "s3:ListBucketMultipartUploads",
                "s3:GetBucketLocation",
                "s3:GetBucketVersioning",
                "s3:GetBucketObjectLockConfiguration",
                "s3:GetEncryptionConfiguration"
            ],
            "Resource": [
                "arn:aws:s3:::*"
            ],
            "Sid": "EnableReplicationOnBucket"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetReplicationConfiguration",
                "s3:ReplicateTags",
                "s3:AbortMultipartUpload",
                "s3:GetObject",
                "s3:GetObjectVersion",
                "s3:GetObjectVersionTagging",
                "s3:PutObject",
                "s3:PutObjectRetention",
                "s3:PutBucketObjectLockConfiguration",
                "s3:PutObjectLegalHold",
                "s3:DeleteObject",
                "s3:ReplicateObject",
                "s3:ReplicateDelete"
            ],
            "Resource": [
                "arn:aws:s3:::*"
            ],
            "Sid": "EnableReplicatingDataIntoBucket"
        }
    ]
}
  • "EnableReplicationOnBucket" 语句授予远程目标检索存储桶级配置的权限,以支持在 MinIO 部署中 所有 存储桶上的复制操作。 若要将策略限制到特定存储桶,请在 Resource 数组中按 "arn:aws:s3:::bucketName" 形式指定这些存储桶。
  • "EnableReplicatingDataIntoBucket" 语句授予远程目标将数据同步到 MinIO 部署中 任意 存储桶的权限。 若要将策略限制到特定存储桶,请在 Resource 数组中按 "arn:aws:s3:::bucketName/*" 形式指定这些存储桶。

使用 mc admin policy create 将该策略添加到每个作为复制目标的部署。 使用 mc admin user add 在部署上创建用户,并使用 mc admin policy attach 将策略关联到该新用户。

现有对象复制

mc RELEASE.2021-06-13T17-48-22Zminio RELEASE.2021-06-07T21-40-51Z 开始,MinIO 支持自动复制存储桶中的现有对象。 MinIO 的现有对象复制实现了类似 AWS Replicating existing objects between S3 buckets 的能力,而无需联系技术支持的额外开销。

  • 若要在创建新复制规则时启用现有对象复制,请在传给 mc replicate add --replicate 的复制功能列表中包含 "existing-objects"
  • 若要为已有复制规则启用现有对象复制,请使用 mc replicate add --replicate"existing-objects" 添加到现有复制功能列表中。 编辑复制规则时,你必须指定 所有 期望的复制功能。

有关此行为的更完整文档,请参见 现有对象的复制

元数据变更同步

MinIO 支持 双向 active-active 复制配置,即在两个 MinIO 部署上的存储桶之间同步新增和修改后的对象。 从 mc RELEASE.2021-05-18T03-39-44Z 开始,MinIO 默认会将复制对象的仅元数据变更同步回“源”部署。 在该更新之前,MinIO 不支持同步复制对象的仅元数据变更。

启用元数据同步后,MinIO 会重置对象的 复制状态 以表明其具备复制资格。 具体而言,当应用对状态为 REPLICA 的对象执行仅元数据更新时,MinIO 会将对象标记为 PENDING 并使其具备复制资格。

若要禁用元数据同步,请使用 mc replicate update --replicate 命令,并在复制功能列表中省略 replica-metadata-sync

删除操作复制

MinIO 支持将删除操作复制到目标存储桶。 具体来说,MinIO 可以同时复制 Delete Markers 以及 特定版本对象的删除:

  • 对对象执行删除操作时,MinIO 复制也会在目标存储桶创建删除标记。
  • 对对象版本执行删除操作时,MinIO 复制也会删除目标存储桶中的对应版本。

对于因 生命周期管理过期规则 被删除的对象,MinIO 不会 进行复制。 MinIO 仅复制由客户端显式触发的删除操作。

MinIO 要求使用 mc replicate add --replicate 参数显式启用删除操作复制。 本流程包含启用删除操作和删除标记复制所需的参数。 有关此行为的更完整文档,请参见 删除操作的复制

加密对象复制

MinIO 支持复制使用自动 Server-Side Encryption (SSE-S3) 加密的对象。 要复制加密对象,源存储桶和目标存储桶都 必须 启用自动 SSE-S3。

作为复制流程的一部分,MinIO 会在源存储桶上 解密 对象,并传输未加密对象。 目标 MinIO 部署随后会使用目标存储桶的 SSE-S3 配置重新加密该对象。 MinIO 强烈建议 在源端和目标端部署上都 启用 TLS,以确保对象在传输过程中的安全。

MinIO 支持复制客户端侧加密对象(SSE-C)。

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

15 - mc retention set

语法

mc retention set 命令用于为存储桶中的一个或多个对象配置 Write-Once Read-Many (WORM) locking 设置。 你还可以为存储桶设置默认对象锁定设置,使未显式配置对象锁定的所有对象继承该存储桶默认值。

要在 legal hold 下锁定对象, 请使用 mc legalhold set

mc retention set 要求 指定存储桶已启用对象锁定。 你 只能 在创建存储桶时启用对象锁定。有关启用对象锁定创建存储桶的文档,请参见 mc mb --with-lock

以下命令会在 myminio MinIO 部署中的 mydata 存储桶上, 设置默认 30 天的 GOVERNANCE 对象锁:

mc retention set --default GOVERNANCE "30d" myminio/mydata

命令语法如下:

mc [GLOBALFLAGS] retention set                         \
                 [--bypass]                            \
                 [--default]                           \
                 [--recursive]                         \
                 [--rewind "string"]                   \
                 [--versions]                          \
                 [--version-id "string"]*              \
                 MODE                                  \
                 "VALIDITY"                            \
                 ALIAS
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

mc retention set --version-id 与多个其他参数互斥。 更多信息请参见参考文档。

参数

MODE

mc-cmd

Required

设置 ALIAS 的锁定模式。 指定以下支持值之一:

  • governance
  • compliance

有关支持模式的更多信息,请参见 AWS S3 文档 Object Lock Overview

需要指定 VALIDITY

VALIDITY

mc-cmd

Required

指定对象在创建后保持在 MODE 中的持续时间。

  • 按天计时,指定格式为 Nd 的字符串。例如,

    30d 表示对象创建后 30 天。

  • 按年计时,指定格式为 Ny 的字符串。例如,

    1y 表示对象创建后 1 年。

ALIAS

mc-cmd

Required

需要设置对象锁定配置的对象或对象集合的完整路径。 指定 MinIO 或兼容 S3 服务的 alias 以及存储桶完整路径。 例如:

mc retention set play/mybucket/object.txt MODE VALIDITY
  • 如果 ALIAS 指定的是存储桶或存储桶前缀,请包含 --recursive 以将对象锁定设置应用到 存储桶内容。
  • mc retention set 默认仅应用到对象的最新版本。 使用 --version-id--versions 可分别将对象锁定设置 应用于指定版本或对象的所有版本。
--bypass

mc-cmd

Optional

允许具有 s3:BypassGovernanceRetention 权限的用户 修改对象。需要 governance 保留 MODE

--default

mc-cmd

Optional

使用 MODEVALIDITY, 为 ALIAS 指定的存储桶设置默认对象锁定设置。 在该存储桶中创建的任何对象都会继承默认对象锁定设置, 除非使用 mc retention set 显式覆盖。

如果指定 --defaultmc retention set 会忽略所有其他标志。

--recursive, --r

mc-cmd

Optional

递归将对象锁定设置应用到 ALIAS 路径下的所有对象。

--version-id 互斥。

--rewind

mc-cmd

Optional

指示 mc retention set 仅对指定时间点存在的对象版本执行操作。

  • 如需回溯到过去的特定日期,请将该日期指定为 ISO8601 格式的时间戳。 例如:--rewind "2020.03.24T10:00"
  • 如需按时间长度回溯,请将该时长指定为 #d#hh#mm#ss 格式的字符串。 例如:--rewind "1d2hh3mm4ss"

--rewind 要求指定的 ALIAS 指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用 mc version 启用或禁用存储桶版本控制。

--version-id, --vid

mc-cmd

Optional

指示 mc retention set 仅对指定的对象版本执行操作。

--version-id 要求指定的 ALIAS 指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用 mc version 启用或禁用存储桶版本控制。

与以下任一标志互斥:

--versions

mc-cmd

Optional

指示 mc retention set 对存储桶中存在的所有对象版本执行操作。

--versions 要求指定的 ALIAS 指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用 mc version 启用或禁用存储桶版本控制。

--versions--rewind 结合使用, 可将保留设置应用到特定时间点存在的所有对象版本。

全局标志

此命令支持 全局标志 中的任意选项。

示例

设置存储桶默认保留设置

mc retention set--recursive--default 结合使用, 以设置存储桶默认保留设置。

mc retention set  --recursive --default MODE DURATION ALIAS/PATH
  • MODE 替换为要启用的保留模式。 MinIO 支持 AWS S3 保留模式 governancecompliance
  • DURATION 替换为对象锁定应持续生效的时长。 例如,要将保留期设置为 30 天,请指定 30d
  • ALIAS 替换为已配置的兼容 S3 主机的 alias
  • PATH 替换为存储桶路径。

要使用此命令,存储桶 必须 启用对象锁定。 只能在创建存储桶时启用对象锁定。有关创建已启用对象锁定的存储桶的更多信息, 请参阅 mc mb --with-lock

为已版本化对象设置对象锁定配置

mc retention set--version-id 结合使用, 可将保留设置应用到特定对象版本:

mc retention set --version-id VERSION MODE DURATION ALIAS/PATH
  • VERSION 替换为对象版本。
  • MODE 替换为要启用的保留模式。 MinIO 支持 AWS S3 保留模式 governancecompliance
  • DURATION 替换为对象锁定应持续生效的时长。 例如,要将保留期设置为 30 天,请指定 30d
  • ALIAS 替换为已配置的兼容 S3 主机的 alias
  • PATH 替换为对象路径。

mc retention set--versions 结合使用, 可将保留设置应用到特定对象版本:

mc retention set --versions  MODE DURATION ALIAS/PATH
  • MODE 替换为要启用的保留模式。 MinIO 支持 AWS S3 保留模式 governancecompliance
  • DURATION 替换为对象锁定应持续生效的时长。 例如,要将保留期设置为 30 天,请指定 30d
  • ALIAS 替换为已配置的兼容 S3 主机的 alias
  • PATH 替换为对象路径。

要使用此命令,存储桶 必须 启用对象锁定。 只能在创建存储桶时启用对象锁定。有关创建已启用对象锁定的存储桶的更多信息, 请参阅 mc mb --with-lock

行为

对象版本的保留

对于启用了 versioning 的存储桶,mc retention set 默认对目标对象(一个或多个)的 最新 版本执行操作。 mc retention set 包含若干特定选项,在 显式 指定时, 可指示命令对特定对象版本 对象的所有版本执行操作:

要让 mc retention set 对对象的特定版本执行操作, 请包含 --version-id 参数:

要让 mc retention set 对对象的 所有 版本执行操作, 请包含 --versions 参数:

锁定对象会阻止对该对象进行任何修改或删除, 与 COMPLIANCE 对象锁定模式类似。 对象可以同时具有基于保留的锁和 legal hold 锁。

legal hold 锁会 覆盖 任何保留锁定,这意味着处于 legal hold 下的对象 即使保留期到期也会保持锁定。对处于 legal hold 下对象的保留设置进行设置、 修改或清除,在 legal hold 到期或被显式禁用之前均不会生效。

有关对象 legal hold 的更多信息,请参见 mc legalhold

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

16 - mc share download

语法

mc share download 命令会生成一个临时的预签名 URL,并集成访问凭证, 用于从 MinIO 存储桶下载对象。该临时 URL 会在可配置的时间限制后过期。

  • 应用程序可以通过执行 GET 从该 URL 获取对象。
  • 用户可以在浏览器中打开该 URL 下载对象。

有关可共享对象 URL 的更多信息,请参阅 Amazon S3 关于 Pre-Signed URLs.

以下命令会为 myminio MinIO 部署中的 mydata 存储桶生成一个新的预签名下载 URL:

mc share download --recursive myminio/mydata

该命令的语法如下:

mc [GLOBALFLAGS] share download           \
                 [--expire "string"]      \
                 [--recursive]            \
                 [--version-id "string"]  \
                 ALIAS
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

MinIO 部署的 alias,以及要为其生成下载 URL 的对象完整路径。例如:

mc share download play/mybucket/object.txt

你可以在同一个或不同的 MinIO 部署上指定多个对象。例如:

mc share download play/mybucket/object.txt play/mybucket/otherobject.txt

如果指定的是存储桶路径或存储桶前缀路径,则 必须 同时指定 --recursive 参数。例如:

mc share download --recursive play/mybucket/

mc share download --recursive play/mybucket/myprefix/
--expire, E

mc-cmd

Optional

为所有生成的 URL 设置过期时间限制。

指定一个格式为 ##h##m##s 的字符串。例如:12h34m56s 表示 URL 生成后 12 小时 34 分 56 秒过期。

默认为 168h,即 168 小时(7 天)。

--recursive, r

mc-cmd

Optional

递归地为 mc share download ALIAS 存储桶或存储桶前缀中的所有对象生成 URL。

如果任一 ALIAS 指向存储桶路径或存储桶前缀路径,则此参数为必需。

--version-id, vid

mc-cmd

Optional

指示 mc share download 仅对指定的对象版本执行操作。

--version-id 要求指定的 ALIAS 指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用 mc version 启用或禁用存储桶版本控制。

全局标志

此命令支持 全局标志 中的任意选项。

示例

生成用于下载对象的 URL

使用 mc share download 为对象生成支持 GET 请求的 URL:

mc share download --expire DURATION ALIAS/PATH
  • ALIAS 替换为 MinIO 部署的 alias
  • PATH 替换为 MinIO 部署上对象的路径。
  • DURATION 替换为 URL 的过期时长。 例如,要设置为 30 天过期,请指定 30d

使用 mc share download 并结合 --recursive 选项,可为存储桶中的每个对象生成一个 URL。 每个 URL 都支持对其关联对象执行 GET 请求:

mc share download --recursive --expire DURATION ALIAS/PATH
  • ALIAS 替换为 MinIO 部署的 alias
  • PATH 替换为 MinIO 部署上的存储桶路径或存储桶前缀路径。
  • DURATION 替换为 URL 的过期时长。 例如,要设置为 30 天过期,请指定 30d

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

17 - mc support callhome

描述

mc support callhome 命令用于启用或禁用将部署诊断信息发送到 MinIO SUBNET

所有 mc support 命令都需要有效的 SUBNET 订阅。

启用后,MinIO 会将诊断信息发送到 SUBNET。

无论注册状态如何,MinIO 默认禁用此功能。 你必须显式启用 callhome 功能,信息上传才会开始。

说明

需要完成 SUBNET 注册

mc support 命令面向已在 MinIO SUBNET 注册的 MinIO 部署设计,以确保诊断和 性能测试获得最佳结果。 未注册 SUBNET 的部署无法使用 mc support 命令。

语法

mc support callhome enable

mc-cmd

开始将部署的诊断信息、日志或两者同时发送到 SUBNET。

mc support callhome enable    \
                    ALIAS     \
                    [--logs]  \
                    [--diag]
说明

说明

SUBNET 不再支持 --logs--diag 标志,并将在未来版本中移除。

mc support callhome disable

mc-cmd

停止将部署的诊断信息、日志或两者同时发送到 SUBNET。

mc support callhome disable  \
                    ALIAS    \
                    [--logs] \
                    [--diag]
说明

说明

SUBNET 不再支持 --logs--diag 标志,并将在未来版本中移除。

mc support callhome status

mc-cmd

输出某个部署当前是否将诊断信息、日志或两者同时发送到 SUBNET。

mc support callhome status   \
                    ALIAS    \
                    [--diag]
说明

说明

SUBNET 不再支持 --diag 标志,并将在未来版本中移除。

参数

ALIAS

mc-cmd

Required

MinIO 部署的 alias

--diag

mc-cmd

Optional

说明

说明

SUBNET 不再支持此选项,并将在未来版本中移除。

每 24 小时向 SUBNET 发送部署诊断信息,或停止发送。

示例

启用 callhome 上报

为已注册到 SUBNET 且 aliasminio1 的部署启用向 SUBNET 发送诊断信息。

mc support callhome enable minio1

禁用 callhome 上报

为已注册到 SUBNET 且 aliasminio1 的部署禁用向 SUBNET 发送诊断信息。

mc support callhome disable minio1

显示当前 callhome 设置

显示别名为 minio1 的部署是否向 SUBNET 发送信息。

mc support callhome status minio1

全局标志

此命令支持 全局标志 中的任意选项。

18 - mc support top api

说明

需要完成 SUBNET 注册

mc support 命令面向已在 MinIO SUBNET 注册的 MinIO 部署设计,以确保诊断和 性能测试获得最佳结果。 未注册 SUBNET 的部署无法使用 mc support 命令。

语法

mc support top api 命令用于汇总 MinIO 部署服务器上的实时 API 事件。

以下命令显示 alias myminio 上当前正在进行的 S3 API 调用。

mc support top api myminio/

该命令的语法如下:

mc [GLOBALFLAGS] support top api    \
                 TARGET             \
                 [--name "string"]  \
                 [--path "string"]  \
                 [--node "string"]  \
                 [--errors, -e]
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

TARGET

mc-cmd

Required

命令应在其上运行的 alias、前缀或对象完整路径。 该路径至少必须包含一个 ALIAS

--name

mc-cmd

Optional

输出与输入字符串匹配的当前 API 调用摘要。

--path

mc-cmd

Optional

输出指定路径的当前 API 调用摘要。

--node

mc-cmd

Optional

输出匹配服务器上的当前 API 调用摘要。

--errors, -e

mc-cmd

Optional

输出返回错误的当前 API 调用摘要。

全局参数

此命令支持 全局标志 中的任意选项。

示例

显示当前所有正在进行的 S3 API 调用

以下命令显示 myminio 部署中所有正在进行的 S3 API 调用:

mc support top api myminio/

显示当前正在进行的 s3.PutObject 调用

以下命令显示 myminio 部署中所有正在进行的 s3.PutObject 调用:

mc support top api --name s3.PutObject myminio/

19 - mc tag set

语法

mc tag set 命令可为存储桶或对象设置一个或多个标签。

MinIO 支持为对象最多添加 10 个自定义标签。

以下命令为 myminio MinIO 部署中的 mydata 存储桶设置标签:

mc tag set myminio/mydata "tag1=value1&tag2=value2"

该命令的语法如下:

mc [GLOBALFLAGS] tag set                   \
                 [--rewind "string"]       \
                 [--versions]              \
                 [--version-id "string"]*  \
                 ALIAS                     \
                 "TAGS"
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

mc tag set --version-id 与多个参数互斥。更多信息请参阅参考文档。

参数

ALIAS

mc-cmd

Required

MinIO 部署的 alias,以及要应用标签的对象完整路径(例如存储桶和对象路径)。例如:

mc tag set myminio/mybucket/object.txt
TAGS

mc-cmd

Required

使用与号(&)分隔的键值对(KEY=VALUE)列表,其中每一对表示要分配给对象的一个标签。例如:

mc tag set myminio/mybucket/object.txt "key1=value1&key2=value2"
--exclude-folders

mc-cmd

Optional

说明

新增: RELEASE.2024-01-11T05-49-32Z

--recursive 一起使用时,mc tag set不会 遍历子前缀。 标签仅应用于指定路径下的对象。 需要 --recursive

以下示例将 destination=international 标签应用到 vacation-photos/cancun/ 下的对象,但不应用到 vacation-photos/cancun/ocean/ 或其他前缀。

例如,上述命令会将标签添加到 vacation-photos/cancun/pretty-beach.jpg,但不会添加到 vacation-photos/cancun/ocean/tropical-fish.jpg

mc tag set myminio/vacation-photos/cancun "destination=international" --exclude-folders --recursive
--recursive, r

mc-cmd

Optional

说明

新增: RELEASE.2023-05-04T18-10-16Z

递归地将标签应用到 ALIAS 指定路径下的所有对象。

--rewind

mc-cmd

Optional

指示 mc tag set 仅对指定时间点存在的对象版本执行操作。

  • 如需回溯到过去的特定日期,请将该日期指定为 ISO8601 格式的时间戳。 例如:--rewind "2020.03.24T10:00"
  • 如需按时间长度回溯,请将该时长指定为 #d#hh#mm#ss 格式的字符串。 例如:--rewind "1d2hh3mm4ss"

--rewind 要求指定的 ALIAS 指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用 mc version 启用或禁用存储桶版本控制。

--versions

mc-cmd

Optional

指示 mc tag set 对存储桶中存在的所有对象版本执行操作。

--versions 要求指定的 ALIAS 指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用 mc version 启用或禁用存储桶版本控制。

--versions--rewind 一起使用,可将标签应用到某个特定时间点存在的所有对象版本。

--version-id, --vid

mc-cmd

Optional

指示 mc tag set 仅对指定的对象版本执行操作。

--version-id 要求指定的 ALIAS 指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用 mc version 启用或禁用存储桶版本控制。

与以下参数互斥:

全局标志

此命令支持 全局标志 中的任意选项。

示例

将标签应用到存储桶或对象

使用 mc tag set 将标签应用到存储桶或对象:

mc tag set ALIAS/PATH "TAGS"
  • ALIAS 替换为 MinIO 部署的 alias
  • PATH 替换为 MinIO 部署中存储桶 或对象的路径。
  • TAGS 替换为一个或多个用与号分隔(&)的键值对, 每个键值对表示一个标签及其对应值。

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

20 - mc version enable

语法

mc version enable 命令用于为指定存储桶启用版本控制。

以下命令为 myminio MinIO 部署中的 mybucket 存储桶启用版本控制:

 mc version enable myminio/mybucket

该命令语法如下:

mc [GLOBALFLAGS] version enable ALIAS                \
                                --exclude-folders    \
                                --excluded-prefixes
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

MinIO 部署的 alias 与要启用版本控制的存储桶完整路径。例如:

mc version enable myminio/mybucket
--exclude-folders

mc-cmd

Optional

在指定存储桶中,对所有文件夹(名称以 / 结尾的对象)禁用版本控制。

--excluded-prefixes

mc-cmd

Optional

对匹配前缀列表的对象禁用版本控制,最多支持 10 个前缀。 前缀列表会匹配前缀或名称中包含指定字符串的所有对象,类似 prefix* 形式的正则表达式。 如果仅按前缀匹配对象,请使用 prefix/*

例如,以下命令将前缀或名称中包含 _test_temp 的对象排除在版本控制之外:

mc version enable --excluded-prefixes "_test, _temp" myminio/mybucket

全局标志

此命令支持 全局标志 中的任意选项。

示例

启用存储桶版本控制

使用 mc version enable 为存储桶启用版本控制:

mc version enable ALIAS/PATH
  • ALIAS 替换为已配置 MinIO 部署的 alias
  • PATH 替换为要启用版本控制的存储桶。

行为

现有数据的存储桶版本控制

在包含现有数据的存储桶上启用版本控制后,会立即为每个未版本化对象创建值为 NULL 的版本 ID。

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

21 - Silo 客户端设置

本页面介绍 MinIO Client 的设置。

你可以通过以下方式建立或修改设置:

  • 在启动或重启 MinIO Server 之前,在宿主机系统上定义 环境变量。 如何定义环境变量,请参考所用操作系统的文档。
  • 使用 mc admin config set 定义 配置项

如果同时定义了环境变量和对应的配置项,MinIO 使用环境变量的值。

有些设置只有环境变量或配置项中的一种,而不是两者同时存在。

设置

主机凭证

使用此设置可为 mc 命令添加一个临时别名。 例如,可用于脚本场景。

该临时别名使用 AWS s3v4 signature

MC_HOST_<ALIAS>

envvar

将环境变量末尾的 <ALIAS> 替换为要设置主机的 alias

此设置没有对应的配置项。

使用 mc alias set 配置 alias

示例

静态凭证

语法
export MC_HOST_<alias>=https://<Access Key>:<Secret Key>@<YOUR-S3-ENDPOINT>
示例
export MC_HOST_myalias=https://Q3AM3UQ867SPQQA43P2F:[email protected]

Security Token Service (STS) 凭证

语法
export MC_HOST_<alias>=https://<Access Key>:<Secret Key>:<Session Token>@<YOUR-S3-ENDPOINT>
示例
export MC_HOST_myalias=https://Q3AM3UQ867SPQQA43P2F:zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG:eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJhY2Nlc3NLZXkiOiJOVUlCT1JaWVRWMkhHMkJNUlNYUiIsImF1ZCI6IlBvRWdYUDZ1Vk80NUlzRU5SbmdEWGo1QXU1WWEiLCJhenAiOiJQb0VnWFA2dVZPNDVJc0VOUm5nRFhqNUF1NVlhIiwiZXhwIjoxNTM0ODk2NjI5LCJpYXQiOjE1MzQ4OTMwMjksImlzcyI6Imh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvb2F1dGgyL3Rva2VuIiwianRpIjoiNjY2OTZjZTctN2U1Ny00ZjU5LWI0MWQtM2E1YTMzZGZiNjA4In0.eJONnVaSVHypiXKEARSMnSKgr-2mlC2Sr4fEGJitLcJF_at3LeNdTHv0_oHsv6ZZA3zueVGgFlVXMlREgr9LXA@play.min.io

STS 服务

说明

新增: mc

RELEASE.2023-11-06T04-19-23Z

使用此设置可添加一个用于 mc 命令的 STS endpoint。

说明

变更: mc

RELEASE.2023-12-02T02-03-28Z

支持按 alias 添加多个环境变量。

MC_STS_ENDPOINT_<alias>

envvar

export MC_STS_ENDPOINT_myalias=https://sts.minio-operator.svc.cluster.local:4223/sts/ns-1

此设置没有对应的配置项。

Web Token Identity

说明

新增: mc

RELEASE.2023-11-06T04-19-23Z

使用此设置可添加一个用于 mc 命令的 Web Token Identity。

说明

变更: mc

RELEASE.2023-12-02T02-03-28Z

支持按 alias 添加多个环境变量。

MC_WEB_IDENTITY_TOKEN_<alias>

envvar

export MC_WEB_IDENTITY_TOKEN_FILE_myalias=/var/run/secrets/kubernetes.io/serviceaccount/token

此设置没有对应的配置项。

配置目录

指定 MinIO Client 应使用的配置目录路径。

MC_CONFIG_DIR

envvar

此设置没有对应的配置项。

进度条

禁用 MinIO Client 进度条。

MC_QUIET

envvar

此设置没有对应的配置项。

Pager

说明

新增: mc

RELEASE.2024-04-29T09-56-05Z

在 CLI 中禁用 MinIO Client 的分页器功能。 使用该设置后,输出将改为直接打印到原始 STDOUT

MC_DISABLE_PAGER

envvar

此设置没有对应的配置项。

颜色主题

禁用 MinIO Client 输出使用的颜色主题。

MC_NO_COLOR

envvar

此设置没有对应的配置项。

JSON

启用将输出格式化为 JSON lines。

MC_JSON

envvar

此设置没有对应的配置项。

调试

启用调试输出。

MC_DEBUG

envvar

此设置没有对应的配置项。

禁用 SSL

禁用 SSL 证书校验。

MC_INSECURE

envvar

此设置没有对应的配置项。

限制下载带宽

限制 MinIO Client 在某些命令中使用的下载带宽。

MC_LIMIT_DOWNLOAD

envvar

此设置没有对应的配置项。

若未指定,MinIO Client 使用全部可用带宽。

将客户端侧下载速率限制为不超过指定值(KiB/s、MiB/s 或 GiB/s)。该设置仅影响运行 MinIO Client 的本地设备发起的下载。支持的单位包括:

  • B 表示 bytes
  • K 表示 kilobytes
  • M 表示 megabytes
  • G 表示 gigabytes
  • Ki 表示 kibibytes
  • Mi 表示 mibibytes
  • Gi 表示 gibibytes

例如,要将下载速率限制为不超过 1 GiB/s,可在 Linux 系统上使用以下命令:

export MC_LIMIT_DOWNLOAD=1G

在非 Linux 系统上,请参考你的操作系统文档使用等效命令。

限制上传带宽

限制 MinIO Client 在某些命令中使用的上传带宽。

MC_LIMIT_UPLOAD

envvar

此设置没有对应的配置项。

若未指定,MinIO Client 使用全部可用带宽。

将客户端侧上传速率限制为不超过指定值(KiB/s、MiB/s 或 GiB/s)。该设置仅影响运行 MinIO Client 的本地设备发起的上传。支持的单位包括:

  • B 表示 bytes
  • K 表示 kilobytes
  • M 表示 megabytes
  • G 表示 gigabytes
  • Ki 表示 kibibytes
  • Mi 表示 mibibytes
  • Gi 表示 gibibytes

例如,要将上传速率限制为不超过 1 GiB/s,可在 Linux 系统上使用以下命令:

export MC_LIMIT_UPLOAD=1G

在非 Linux 系统上,请参考你的操作系统文档使用等效命令。

SSE-KMS 加密

使用服务端管理密钥通过 SSE-KMS 对选项进行加密和解密。

MC_ENC_KMS

envvar

使用 MC_ENC_KMS 环境变量指定密钥。

此设置没有对应的配置项。

SSE-S3 加密

使用服务端管理密钥通过 SSE-KMS 对选项进行加密和解密。

MC_ENC_S3

envvar

指定执行 SSE-S3 加密时使用的密钥。 指定值必须与 MINIO_KMS_KES_KEY_NAME 中设置的加密密钥匹配。

此设置没有对应的配置项。

22 - mc alias

说明

mc alias 命令提供了一个便捷接口,用于管理 mc 可连接并执行操作的 S3 兼容主机列表。

警告

重要

对 S3 兼容服务执行操作的 mc 命令 必须 为该服务指定一个别名。

子命令

mc alias 包含以下子命令:

子命令

说明

list

mc alias list 命令列出本地 mc 配置中的所有别名。

remove

mc alias remove 从本地 mc 配置中移除一个已存在的别名。

set

mc alias set 命令用于在本地 mc 配置中添加或更新别名。

import

mc alias import 命令从 JSON 文档中导入别名配置。

export

mc alias export 命令从现有的 configuration 中导出别名配置。

23 - mc alias remove

语法

mc alias remove 从本地 mc 配置中移除一个已存在的别名。

以下命令会从主机上移除 MinIO 部署的 myminio alias

mc alias remove myminio

mc alias remove 命令的语法如下:

mc [GLOBALFLAGS] alias remove ALIAS
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

必填 要从本地 mc 配置中移除的别名。

全局参数

此命令支持 全局标志 中的任意选项。

示例

mc 配置中移除别名

使用 mc alias removemc 配置中移除一个已存在的别名:

以下命令会移除 myminio 别名。

mc alias remove myminio
mc alias remove ALIAS

ALIAS 替换为要移除的别名名称。

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

24 - mc anonymous get

语法

mc anonymous get 命令用于获取存储桶的匿名(即未认证或公共)访问 策略

配置了匿名策略的存储桶允许客户端在无需 身份验证 的情况下访问存储桶内容, 并执行与指定策略一致的操作。

要获取分配给存储桶的 JSON 策略,请使用 mc anonymous get-json 命令。

以下命令检索 myminio MinIO 部署上 mydata 存储桶的匿名访问策略:

mc anonymous get myminio/mydata

该命令具有以下语法:

mc [GLOBALFLAGS] policy get ALIAS
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

必需 命令要检索其匿名存储桶策略的存储桶或存储桶前缀完整路径。

指定 MinIO 或其他 S3 兼容服务的 别名,以及存储桶或存储桶前缀的 完整路径。例如:

mc anonymous get public play/mybucket

全局标志

此命令支持 全局标志 中的任意选项。

示例

获取存储桶匿名策略

使用 mc anonymous get 获取存储桶的匿名策略:

mc anonymous get ALIAS/PATH
  • ALIAS 替换为已配置 S3 兼容主机的 alias
  • PATH 替换为目标存储桶。

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

25 - mc batch describe

说明

变更: MinIO

RELEASE.2022-10-09T21-10-59Z or later

语法

mc batch describe 命令会输出指定作业 ID 的作业定义。

必须指定作业 ID。 要查找作业 ID,请使用 mc batch list

以下命令会输出标识为 KwSysDpxcBU9FNhGkn2dCf 的作业定义。

mc batch describe myminio KwSysDpxcBU9FNhGkn2dCf

此命令的语法如下:

mc [GLOBALFLAGS] batch describe TARGET           \
                                JOBID
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

TARGET

mc-cmd

Required

用于查找作业 ID 的 MinIO 部署 alias

JOBID

mc-cmd

Required

要描述的作业的唯一标识符。 要查找作业 ID,请使用 mc batch list

全局标志

此命令支持 全局标志 中的任意选项。

示例

显示进行中批处理作业的定义

以下命令会输出 alias myminio 上特定作业的完整作业定义:

mc batch describe myminio KwSysDpxcBU9FNhGkn2dCf
  • myminio 替换为应运行该作业的 MinIO 部署的 alias
  • KwSysDpxcBU9FNhGkn2dCf 替换为要定义的作业 ID。

上述命令的输出类似如下:

mc batch describe myminio KwSysDpxcBU9FNhGkn2dCf
replicate:
  apiVersion: v1
...

注意,此示例已截断。 输出结果是指定作业的完整作业定义。

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

权限

你必须具有 admin:DescribeBatchJobs 权限,才能描述该部署上的作业。

26 - mc encrypt info

语法

mc encrypt info 命令返回存储桶当前的默认加密设置。

以下命令返回 myminio MinIO 部署上 mydata 存储桶的默认加密设置。

mc encrypt info myminio/mydata

该命令语法如下:

mc [GLOBALFLAGS] encrypt info ALIAS
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

要检索其默认 SSE 模式的存储桶完整路径。 指定 MinIO 部署的 alias 作为 ALIAS 路径前缀。例如:

mc encrypt info play/mybucket

全局标志

此命令支持 全局标志 中的任意选项。

示例

获取存储桶的自动服务端加密设置

 mc encrypt info myminio/data
mc encrypt info ALIAS
  • ALIAS 替换为要为其配置存储桶自动服务端加密的 MinIO 部署 alias

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

27 - mc event ls

语法

mc event ls 命令列出某个存储桶的所有事件通知触发器。

别名 mc event listmc event ls 功能等效。

以下命令列出 myminio MinIO 部署中 mydata 存储桶、指定 bucket notification target 的所有已配置事件通知:

mc event ls myminio myminio/mydata arn:aws:sqs::primary:target

该命令的语法如下:

mc [GLOBALFLAGS]
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

mc [GLOBALFLAGS] event ls [FLAGS] ALIAS ARN

参数

ALIAS

mc-cmd

Required

命令要列出事件通知的 S3 服务 alias 和存储桶。 例如:

mc event ls play/mybucket ARN...
ARN

mc-cmd

Required

存储桶资源的 Amazon Resource Name (ARN)

MinIO 服务器在启动时会为每个已配置的通知目标输出一个 ARN。 更多信息请参见 存储桶通知

全局标志

此命令支持 全局标志 中的任意选项。

示例

列出存储桶上的事件通知

以下命令列出某个存储桶上的所有事件通知触发器。

mc event ls myminio/mydata
mc event ls ALIAS ARN
  • ALIAS 替换为要添加存储桶通知事件的 MinIO 部署 alias。例如:

    myminio/mydata

  • ARN 替换为通知目标 ARN

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

28 - mc idp ldap accesskey edit

说明

mc idp ldap accesskey edit 在本地服务器上修改指定的 access key

以下示例在 minio 部署上修改 access key mykey 的 secret:

mc idp ldap accesskey edit myminio/ mykey --secret-key 'xxxxxxx'

命令语法如下:

mc [GLOBALFLAGS] idp ldap accesskey rm                        \
                                 ALIAS                        \
                                 KEY                          \
                                 [--secret-key <string>]      \
                                 [--policy <string>]          \
                                 [--name <string>]            \
                                 [--description <string>]     \
                                 [--expiry-duration <string>] \
                                 [--expiry <string>]
  • ALIAS 替换为已配置 AD/LDAP 集成的 MinIO 部署的 alias

  • KEY 替换为要删除的 access key。

  • 方括号 [] 表示可选参数。

  • 同一行中的参数彼此相互依赖。

  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

已配置 AD/LDAP 的 MinIO 部署的 alias

例如:

mc idp ldap accesskey ls minio
KEY

mc-cmd

Required

要删除的已配置 access key。

--description

mc-cmd

Optional

为服务账户添加描述。 例如,可说明该 access key 的用途。

--expiry

mc-cmd

Optional

access key 的过期日期。 请输入 YYYY-MM-DD 格式的日期。

例如,要让凭证在 2024 年 12 月 31 日后过期,输入 2024-12-31

--expiry-duration 互斥。

--expiry-duration

mc-cmd

Optional

access key 保持有效的时长,格式为 #d#h#s

例如,7d24h5d12h30s 都是有效字符串。

--expiry 互斥。

--name

mc-cmd

Optional

账号的人类可读名称。

--policy

mc-cmd

Optional

账号使用的 JSON 格式策略文件路径。

如果未指定,账号将使用与已认证用户相同的策略。

--secret-key

mc-cmd

Optional

账号使用的 secret。

示例

修改 access key 的 secret

minio 部署上修改 access key mykey 的 secret。

mc idp ldap accesskey edit myminio/ mykey --secret-key 'xxxxxxx'

修改 access key 的过期时长

minio 部署上修改 access key mykey 的过期时长。

mc idp ldap accesskey edit myminio/ mykey ---expiry-duration 24h

全局参数

此命令支持 全局标志 中的任意选项。

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

29 - mc idp ldap disable

描述

mc idp ldap disable 命令用于禁用当前已配置的 AD/LDAP 提供程序。

以下示例会在 myminio 部署上禁用 AD/LDAP 配置。

mc idp ldap disable  \
            myminio

该命令具有以下语法:

mc [GLOBALFLAGS] idp ldap disable  \
                          ALIAS
  • ALIAS 替换为 MinIO 部署的 alias,以禁用 AD/LDAP 集成。

  • 方括号 [] 表示可选参数。

  • 同一行中的参数彼此相互依赖。

  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

要禁用 AD/LDAP 集成的 MinIO 部署的 alias

例如:

mc idp ldap disable myminio

全局标志

此命令支持 全局标志 中的任意选项。

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

30 - mc idp ldap policy detach

描述

mc idp ldap policy detach 命令可从实体分离一个或多个策略。

以下示例从 myminio 部署中的用户 bobfisher 分离策略 userpolicy

mc idp ldap policy detach myminio                                                  \
                          userpolicy                                               \
                          --user='uid=bobfisher,ou=people,ou=hwengg,dc=min,dc=io'

该命令具有以下语法:

mc [GLOBALFLAGS] idp ldap policy detach             \
                                 POLICYNAME         \
                                 [POLICY2] ...      \
                                 ALIAS              \
                                 [--user=`USER`]    \
                                 [--group=`GROUP`]
  • ALIAS 替换为 MinIO 部署的 alias,用于配置 AD/LDAP 集成。

  • POLICYNAME 替换为要从实体分离的策略。 你可以列出多个要从实体分离的策略。

  • 必须在 --user--group 标志中二选一。 每个命令中只能使用一次该标志。 不能在同一命令中同时使用这两个标志。

  • 方括号 [] 表示可选参数。

  • 同一行中的参数彼此相互依赖。

  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

包含待分离策略实体的 MinIO 部署 alias

例如:

mc idp ldap policy detach myminio                                                  \
                          userpolicy                                               \
                          --user='uid=bobfisher,ou=people,ou=hwengg,dc=min,dc=io'

示例

以下示例从 myminio 部署中的 projectb 组分离两个策略 policy1policy2

mc idp ldap policy detach myminio                                                 \
                          policy1                                                 \
                          policy2                                                 \
                          --group='cn=projectb,ou=groups,ou=swengg,dc=min,dc=io'

全局标志

此命令支持 全局标志 中的任意选项。

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

31 - mc ilm rule

说明

变更: RELEASE.2022-12-24T15-21-38Z

以下命令已移至 mc ilm rule 下的子命令:

描述

mc ilm rule 命令及其子命令用于配置 MinIO 生命周期管理中对象在各存储层之间转换所使用的规则。

在使用此命令创建规则前,请先使用 mc ilm tier 及其子命令创建对象将要迁移到的其他对象存储位置对应的一个或多个存储层。

有关更多信息,请参阅 lifecycle management 概述。

子命令

mc ilm rule 包含以下子命令:

子命令

描述

add

mc ilm rule add 命令用于向存储桶添加对象生命周期管理规则。

edit

mc ilm rule edit 命令用于修改 MinIO 存储桶上现有的对象生命周期管理规则。

export

mc ilm rule export 命令用于导出 MinIO 存储桶的对象生命周期管理配置。

import

mc ilm rule import 命令导入对象生命周期管理配置, 并将其应用到 MinIO 存储桶。

ls

mc ilm rule ls 命令以表格格式汇总 MinIO 存储桶上配置的所有对象生命周期管理规则。

rm

mc ilm rule rm 命令用于从 MinIO 存储桶中删除一条对象生命周期管理规则。

权限

MinIO 要求具备以下权限,且权限范围应限定为创建生命周期管理规则的一个或多个存储桶。

例如,以下策略提供了在集群任意存储桶上配置对象转换生命周期管理规则的权限:

{
   "Version": "2012-10-17",
   "Statement": [
      {
            "Action": [
               "admin:SetTier",
               "admin:ListTier"
            ],
            "Effect": "Allow",
            "Sid": "EnableRemoteTierManagement"
      },
      {
            "Action": [
               "s3:PutLifecycleConfiguration",
               "s3:GetLifecycleConfiguration"
            ],
            "Resource": [
                        "arn:aws:s3:::*"
            ],
            "Effect": "Allow",
            "Sid": "EnableLifecycleManagementRules"
      }
   ]
}

转换权限

对象转换生命周期管理规则在远端存储层上需要额外权限。具体而言, MinIO 要求远端存储层凭证提供读取、写入、列举和删除权限。

例如,如果远端存储层使用基于 AWS IAM 策略的访问控制, 则以下策略提供了对象迁入和迁出远端存储层所需的必要权限:

{
   "Version": "2012-10-17",
   "Statement": [
      {
            "Action": [
               "s3:ListBucket"
            ],
            "Effect": "Allow",
            "Resource": [
               "arn:aws:s3:::MyDestinationBucket"
            ],
            "Sid": ""
      },
      {
            "Action": [
               "s3:GetObject",
               "s3:PutObject",
               "s3:DeleteObject"
            ],
            "Effect": "Allow",
            "Resource": [
               "arn:aws:s3:::MyDestinationBucket/*"
            ],
            "Sid": ""
      }
   ]
}

请根据 MinIO 分层写入对象的目标存储桶修改 Resource

有关如何配置用户和权限以支持 MinIO 分层的完整信息,请参阅受支持分层目标的文档:

32 - mc ilm rule edit

说明

变更: RELEASE.2022-12-24T15-21-38Z

mc ilm rule edit 替代 mc ilm edit

语法

mc ilm rule edit 命令用于修改 MinIO 存储桶上现有的对象生命周期管理规则。

以下命令用于修改 myminio 部署上 mydata 存储桶的现有生命周期管理规则:

mc ilm rule edit --id "c79ntj94b0t6rukh6lr0" --expiry-days 90  myminio/mydata

mc ilm rule edit --id "c79nu2p4b0t6qko19rgg" --expired-object-delete-marker myminio/mydata

mc ilm rule edit --id "c79n19dn10dnab109fg1" --transition-days 30 --tier "COLDTIER"

该命令按如下方式修改指定规则:

  • 删除超过 90 天的对象。
  • 如果对象没有其他剩余版本,则删除 DeleteMarker 墓碑标记。
  • 将超过 30 天的对象迁移到 COLDTIER 远程层。

命令语法如下:

mc [GLOBALFLAGS] ilm rule edit                                       \
                 --id "string"                                       \
                 [--prefix "string"]                                 \
                 [--enable]                                          \
                 [--disable]                                         \
                 [--expire-all-object-versions]                      \
                 [--expire-days "string"]                            \
                 [--expire-delete-marker]                            \
                 [--transition-days "string"]                        \
                 [--transition-tier "string"]                        \
                 [--noncurrent-expire-days "string"]                 \
                 [--noncurrent-expire-newer "string"]                \
                 [--noncurrent-transition-days "string"]             \
                 [--noncurrent-transition-tier "string"]             \
                 [--tags]                                            \
                 ALIAS
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

要修改对象生命周期管理规则的 MinIO 部署中,存储桶的 alias 和完整路径。 例如:

mc ilm rule edit myminio/mydata
--id

mc-cmd

Required

规则的唯一 ID。使用 mc ilm rule ls 列出存储桶规则,并获取要修改规则的 id

--disable

mc-cmd

Optional

停用该规则,但保留该规则以供后续使用。 当规则被禁用时,对象不会迁移或过期。

--enable

mc-cmd

Optional

启用规则以迁移或使对象过期。

--prefix

mc-cmd

Optional

将管理规则限制为特定的存储桶前缀。

例如:

mc ilm rule edit --prefix "meetingnotes/" myminio/mydata --expire-days "90"

该命令会修改一条规则:对于 myminio ALIAS 中 mydata 存储桶内前缀为 meetingnotes/ 的任意对象,在 90 天后过期。

--expire-all-object-versions

mc-cmd

Optional

说明

新增: mc

RELEASE.2024-02-24T01-33-20Z

使对象的所有当前版本和非当前版本都过期。 与 --expire-days 选项结合使用,可指定扫描器进程在多少天后删除对象的所有版本。

scanner 处理该命令后,部署中不会保留该对象的任何版本。

说明

新增: MinIO

RELEASE.2024-05-01T01-11-10Z

该标志 适用于最新版本 是 delete marker 的对象。

--expire-days

mc-cmd

Optional

对象创建后保留的天数。达到指定天数后,MinIO 会将对象标记为待删除。

使用该选项时请谨慎,其行为可能导致已上传对象立即过期。任何在指定过期日期 之后 创建的对象都会自动满足过期条件。同样地,若指定的日历日期 早于 当前系统主机时间, 该规则覆盖的所有对象都会被标记为删除。指定日历日期过后,请考虑立即移除使用该选项的 ILM 规则。

对于启用版本控制的存储桶,过期规则仅适用于 当前 对象版本。使用 --noncurrent-expire-days 选项 可将过期行为应用于非当前对象版本。

MinIO 使用 scanner process 根据所有已配置的 生命周期管理规则检查对象。高 IO 负载或系统资源受限导致的扫描变慢,可能会延迟 生命周期管理规则的生效。更多信息请参阅 生命周期管理对象扫描器

与以下选项互斥:

--expire-delete-marker

mc-cmd

Optional

指定该选项可让 MinIO 删除没有剩余对象版本的对象的 delete marker。 具体来说,delete marker 是给定对象 唯一 剩余的“版本”。

该选项与以下选项互斥:

MinIO 使用 scanner process 根据所有已配置的 生命周期管理规则检查对象。高 IO 负载或系统资源受限导致的扫描变慢,可能会延迟 生命周期管理规则的生效。更多信息请参阅 生命周期管理对象扫描器对象删除

--noncurrent-expire-days

mc-cmd

Optional

对象版本变为 non-current(即该对象的另一个版本成为当前 HEAD)后保留的天数。 达到指定天数后,MinIO 会将非当前对象版本标记为待删除。

该选项的行为与 S3 NoncurrentVersionExpiration 操作一致。

MinIO 使用 scanner process 根据所有已配置的 生命周期管理规则检查对象。高 IO 负载或系统资源受限导致的扫描变慢,可能会延迟 生命周期管理规则的生效。更多信息请参阅 生命周期管理对象扫描器

--noncurrent-expire-newer

mc-cmd

Optional

在应用过期前要保留的对象 non-current 版本数量。 超出指定数量的较旧 non-current 版本会过期。

默认情况下,当过期规则生效时,MinIO 不保留任何 non-current 版本。

--noncurrent-transition-days

mc-cmd

Optional

对象处于 non-current 状态(即被该对象更新版本替换)后经过多少天, MinIO 将该对象版本标记为可迁移。系统主机时间到达该日历日期后, MinIO 会将对象迁移到 --transition-tier 指定的 远程存储层。

该选项对未启用版本控制的存储桶无效。需要指定 --noncurrent-transition-tier

该选项的行为与 S3 NoncurrentVersionTransition 操作一致。

如果远程层是另一个 MinIO 部署,可将值设置为 0,使新对象立即满足迁移到远程层的条件。

MinIO 使用 scanner process 根据所有已配置的 生命周期管理规则检查对象。高 IO 负载或系统资源受限导致的扫描变慢,可能会延迟 生命周期管理规则的生效。更多信息请参阅 生命周期管理对象扫描器

--noncurrent-transition-tier

mc-cmd

Optional

MinIO transitions noncurrent objects versions 所使用的远程存储层。 指定一个通过 mc ilm tier add 创建的远程存储层。

MinIO 不会 自动将对象从先前指定的远程层迁移到新的远程层。 MinIO 会继续将存储在旧远程层上的对象请求路由到旧远程层。

--tags

mc-cmd

Optional

一个或多个以 & 分隔的键值对,用于描述要应用生命周期配置规则的对象标签。

该选项与以下选项互斥:

--transition-days

mc-cmd

Optional

对象创建后经过多少个日历天,MinIO 会将对象标记为可迁移。 MinIO 会将对象迁移到 --transition-tier 指定的远程存储层。 以整数指定天数,例如 30 表示 30 天。 如果远程层是另一个 MinIO 部署,可将值设置为 0,使新对象立即满足迁移到远程层的条件。

对于启用版本控制的存储桶,迁移规则仅适用于 当前 对象版本。使用 --noncurrent-transition-days 选项 可将迁移行为应用于非当前对象版本。

需要指定 --transition-tier

MinIO 使用 scanner process 根据所有已配置的 生命周期管理规则检查对象。高 IO 负载或系统资源受限导致的扫描变慢,可能会延迟 生命周期管理规则的生效。更多信息请参阅 生命周期管理对象扫描器

--transition-tier

mc-cmd

Optional

MinIO transition objects 所使用的远程存储层。 指定一个通过 mc ilm tier add 创建的远程存储层。

如果指定 --transition-days,则该选项必填。

MinIO 不会 自动将对象从先前指定的远程层迁移到新的远程层。 MinIO 会继续将存储在旧远程层上的对象请求路由到旧远程层。

全局参数

此命令支持 全局标志 中的任意选项。

示例

修改现有生命周期管理规则

使用带有 --idmc ilm rule edit 修改现有对象过期规则:

mc ilm rule edit ALIAS/PATH --id "RULEID" [FLAGS]
  • ALIAS 替换为 S3 兼容主机的 alias
  • PATH 替换为 S3 兼容主机上存储桶的路径。
  • RULEID 替换为对象生命周期管理规则的唯一 ID。 使用 mc ilm rule ls 查找 RULEID
  • 指定任意附加标志以新增或修改生命周期管理规则。 例如,指定 --transition-days 以覆盖该规则现有的迁移天数值。

禁用生命周期管理规则

使用带有 --disablemc ilm rule edit 停止使用现有管理规则。

mc ilm rule edit --id "RULEID" --disable myminio/mybucket
  • RULEID 替换为对象生命周期管理规则的唯一 ID。 使用 mc ilm rule ls 查找 RULEID
  • myminio 替换为规则所在部署的 ALIAS。
  • mybucket 替换为规则对应的存储桶。

所需权限

有关编辑规则所需的权限,请参阅父命令中的 required permissions

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

33 - mc ilm tier check

描述

mc ilm tier check 命令用于显示某个部署上远程层的配置。

语法

该命令具有以下语法:

以下示例显示 myminio 部署上名为 WARM-TIER 的现有远程层配置。

 mc ilm tier check myminio WARM-TIER

该命令具有以下语法:

mc ilm tier add TARGET TIER_NAME
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

该命令接受以下参数:

TARGET

mc-cmd

Required

已配置 MinIO 部署的 alias,且目标层存在于该部署上。

TIER_NAME

mc-cmd

Required

要显示的现有远程层名称。

必须 使用全大写指定该层,例如 WARM_TIER

全局标志

此命令支持 全局标志 中的任意选项。

示例

显示现有层的配置

以下示例显示 myminio 部署上 WARM-TIER 层的配置。

mc ilm tier check myminio WARM-TIER

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

所需权限

有关查看层所需的权限,请参阅父命令中的 required permissions

34 - mc legalhold info

语法

mc legalhold info 命令返回一个或多个对象的当前 legal hold 设置。

mc legalhold 要求 指定的存储桶已启用对象锁定。 你 只能 在创建存储桶时启用对象锁定。有关创建启用对象锁定的存储桶,请参阅 mc mb --with-lock 文档。

以下命令检索 myminio MinIO 部署中 mydata 存储桶内对象的当前 legal hold 状态:

mc legalhold info --recursive myminio/mydata

该命令语法如下:

mc [GLOBALFLAGS] legalhold info  \
                 [--recursive]   \
                 [--rewind]      \
                 [--version-id]  \
                 ALIAS
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

MinIO alias 以及要为其启用 legal hold 的对象路径(或多个对象路径)。例如:

mc legalhold info play/mybucket/myobjects/objects.txt
--recursive, r

mc-cmd

Optional

返回 ALIAS 中存储桶或存储桶前缀下全部对象的 legal hold 状态。

--rewind

mc-cmd

Optional

指示 mc legalhold info 仅对指定时间点存在的对象版本执行操作。

  • 如需回溯到过去的特定日期,请将该日期指定为 ISO8601 格式的时间戳。 例如:--rewind "2020.03.24T10:00"
  • 如需按时间长度回溯,请将该时长指定为 #d#hh#mm#ss 格式的字符串。 例如:--rewind "1d2hh3mm4ss"

--rewind 要求指定的 ALIAS 指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用 mc version 启用或禁用存储桶版本控制。

--version-id, vid

mc-cmd

Optional

指示 mc legalhold info 仅对指定的对象版本执行操作。

--version-id 要求指定的 ALIAS 指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用 mc version 启用或禁用存储桶版本控制。

全局参数

此命令支持 全局标志 中的任意选项。

示例

使用 mc legalhold info 获取对象的 legal hold 状态。 添加 --recursive 以返回存储桶内容的 legal hold 状态:

mc legalhold clear [--recursive] ALIAS/PATH
  • ALIAS 替换为 S3 兼容主机的 alias
  • PATH 替换为 S3 兼容主机上的存储桶或对象路径。 如果指定的是存储桶路径或存储桶前缀,请包含 --recursive 选项。

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

35 - mc license register

警告

重要

mc license register 需要 MinIO Client RELEASE.2023-11-20T16-30-59Z 或更高版本。 虽非强制要求,但最佳实践是保持 MinIO 客户端版本 与 MinIO 服务端版本一致。

描述

mc license register 命令会将你的部署与 MinIO SUBNET 账户关联。

注册后,你可以使用 mc support diag 命令将部署健康报告直接上传到 SUBNET。

以下示例将 minio alias 注册到 MinIO SUBNET

mc license register minio

命令语法如下:

mc [GLOBALFLAGS] license register ALIAS                      \
                         [--airgap]                          \
                         [--api-key <string>]                \
                         [--license <path to license file>]  \
                         [--name <value>]

参数

ALIAS

mc-cmd

Required

MinIO 部署的 alias

--airgap

mc-cmd

Optional

用于无法访问 SUBNET 网络的环境(例如 airgapped、受防火墙限制或类似配置)。

说明请参见 airgap 示例

如果部署处于 airgapped 环境,但你运行 minio client 的本地设备可以访问网络,则无需使用 --airgap 标志。

--api-key

mc-cmd

SUBNET 上账户的 API key。

对应环境变量 MC_SUBNET_API_KEY

获取 API key 的步骤:

  1. 登录 MinIO SUBNET
  2. 进入 Deployments 选项卡
  3. 在页面顶部、账户统计信息框右侧,选择 API Key 按钮
  4. 选择 key 字段右侧的复制按钮,将 key 值复制到剪贴板
--license

mc-cmd

Optional

用于注册部署的 license 文件路径。

你必须先从 MinIO SUBNET 下载该账户的 license 文件。

  1. 登录 MinIO SUBNET
  2. 进入 Deployments 选项卡
  3. 在页面顶部、账户统计信息框右侧,选择 License 按钮
  4. 选择 license 字段右侧的复制按钮,将 key 值复制到剪贴板,或 选择 Download 按钮将 license 的 txt 文件保存到本地
--name

mc-cmd

Optional

指定一个不同于 alias 的名称,用于在 SUBNET 中关联该 MinIO 部署。

使用 --name <value>,将 <value> 替换为你希望在 SUBNET 上为该部署使用的名称。

示例

使用部署名称注册部署

将 alias 为 minio1 的 MinIO 部署注册到 SUBNET,并使用 minio1 作为部署名称:

mc license register minio1

如果尚未注册,系统会提示输入该部署的 SUBNET 凭证。

使用账户的 License 文件注册部署

将 alias 为 minio5 的新 MinIO 部署注册到 SUBNET,并使用为该账户下载的 license 文件:

mc license register minio5 /path/to/minio.license

如果尚未下载,你可以从 SUBNET 下载 license 文件。

  1. 登录 MinIO SUBNET
  2. 进入 Deployments 选项卡
  3. 在页面顶部、账户统计信息框右侧,选择 License 按钮
  4. 选择 Download 按钮将 license 的 txt 文件保存到本地

使用不同的部署名称注册部署

将 alias 为 minio2 的 MinIO 部署注册到 SUBNET,并使用 second-deployment 作为名称:

mc license register minio2 --name second-deployment

在无法直接访问互联网时注册部署

将 alias 为 minio3 的 MinIO 部署注册到 SUBNET;该部署由于防火墙、airgap 或类似原因无法直接访问互联网。

说明

变更: mc

RELEASE.2022-07-29T19-17-16Z

airgap 注册流程适用于 RELEASE.2022-07-29T19-17-16Z 或更高版本的 MinIO 客户端。 早期版本的 MinIO 客户端 无法注册 airgapped 部署。

mc license register minio3 --airgap
  1. 运行命令,返回带有 token 的注册链接

  2. 在 Web 浏览器中打开复制的注册链接,并登录 SUBNET

  3. 选择部署 License 编号右侧的 ? 按钮

  4. 在弹窗中选择下载链接,并将 key 保存到你有访问权限的路径

  5. 在命令行中运行以下命令

    mc license update minio3 <path-to-file>

    <path-to-file> 替换为你从 SUBNET 下载的文件路径。

语法

命令语法如下:

mc [GLOBALFLAGS] license register       \
                         ALIAS          \
                         [--name value] \
                         [--airgap]

全局标志

此命令支持 全局标志 中的任意选项。

行为

自动更新 License

说明

新增: RELEASE.2023-01-18T04-36-38Z

注册到 MinIO SUBNET 后,MinIO 会每月自动检查并更新 license。

在 airgapped 或其他服务器无法直接访问互联网的环境中,使用带文件路径的 mc license update 来更新注册。

36 - mc replicate backlog

说明

变更: mc.RELEASE.2023-07-18T21-05-38Z

mc replicate diff 已重命名为 mc replicate backlog。 功能未发生变化。

描述

mc replicate backlog 显示尚未复制的新建或已删除对象列表。

你可以列出特定远程目标的对象复制状态。 为此,你必须具有该远程目标的 ARN。 你可以使用 检索为存储桶配置的远程目标 查找 ARN。

语法

以下命令显示 myminio 别名下 notes 存储桶中 teamorange/projects 前缀里尚未复制到特定远程目标存储桶的新建或已删除对象。 该远程目标的 ARN 为 arn:minio:replication::3bb8c736-4014-42c5-b3cb-d64e3ebaa75e:notes

mc replicate backlog myminio/notes/teamorange/projects --arn arn:minio:replication::3bb8c736-4014-42c5-b3cb-d64e3ebaa75e:notes

如果存在尚未复制的新建或已删除对象,命令输出类似如下:

[0001-01-01 00:00:00 UTC] [2022-10-06 17:18:59 UTC]          478efe49-aa9d-46ab-8268-45b70cc4c341 PUT agenda.docx
[0001-01-01 00:00:00 UTC] [2022-10-06 17:18:15 UTC]          b283bf43-319f-455a-a779-3c2e669fad88 PUT budget-meeting.docx

在输出中,PUT 对应新建对象。 已删除对象或版本会显示为 DEL

命令语法如下:

mc [GLOBALFLAGS] replicate backlog   \
                 [--arn "string"]    \
                 TARGET
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

TARGET

mc-cmd

Required

指向别名、前缀或对象的路径。

arn

mc-cmd

Optional

远程存储桶的 ARN,用于检查尚未复制的新建或已删除对象。

指定后,该命令返回尚未复制到远程目标的所有新建或已删除对象列表。 未指定时,该命令返回源部署上尚未复制到任何远程目标的新建或已删除对象列表。

全局标志

此命令支持 全局标志 中的任意选项。

示例

查看某个前缀下对象的未复制版本

显示某个前缀下未复制的 PUTDELETE 操作:

mc replicate backlog myminio/mybucket/path/to/prefix
  • myminio/mybucket 替换为 ALIAS 以及 需要创建复制配置的完整存储桶路径。
  • path/to/prefix 替换为请求要使用的前缀或对象。

如果存在未复制对象,输出会返回一个操作列表,列出在该前缀下创建或删除对象且尚未复制到远程目标的操作:

[0001-01-01 00:00:00 UTC] [2022-10-06 17:18:59 UTC]          478efe49-aa9d-46ab-8268-45b70cc4c341 PUT agenda.docx
[0001-01-01 00:00:00 UTC] [2022-10-06 17:18:15 UTC]          b283bf43-319f-455a-a779-3c2e669fad88 PUT budget-meeting.docx

查看特定远程目标上的未复制对象

以下 mc replicate backlog 命令显示特定远程目标在某个 alias/bucket/prefix 路径上的未复制对象:

mc replicate backlog myminio/mybucket/path/to/prefix --arn <remote-arn>
  • myminio/mybucket 替换为 ALIAS 以及 需要显示未复制对象的完整存储桶路径。
  • path/to/prefix 替换为所需的前缀或对象路径。
  • <remote-arn> 替换为特定远程目标的资源编号。

如果存在未复制对象,输出会返回一个操作列表,列出创建或删除对象且尚未复制到远程目标的操作:

[0001-01-01 00:00:00 UTC] [2022-10-06 17:18:59 UTC]          478efe49-aa9d-46ab-8268-45b70cc4c341 PUT agenda.docx
[0001-01-01 00:00:00 UTC] [2022-10-06 17:18:15 UTC]          b283bf43-319f-455a-a779-3c2e669fad88 PUT budget-meeting.docx

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

37 - mc retention info

语法

mc retention info 命令用于为对象或存储桶中的对象配置 Write-Once Read-Many (WORM) locking 设置。 你还可以为存储桶设置默认对象锁定设置,未显式配置对象锁定的对象会继承该存储桶默认值。

如需基于 legal hold 锁定对象, 请使用 mc legalhold set

mc retention info 要求 指定存储桶已启用对象锁定。 你 只能 在创建存储桶时启用对象锁定。有关创建启用对象锁定的存储桶,请参见 mc mb --with-lock 文档。

以下命令返回 myminio MinIO 部署中 mydata 存储桶的默认对象锁定配置:

mc retention info --default myminio/mydata

命令语法如下:

mc [GLOBALFLAGS] retention info            \
                 [--default]               \
                 [--recursive]             \
                 [--rewind "string"]       \
                 [--version-id "string"]*  \
                 [--versions]              \
                 ALIAS
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

mc retention info --version-id 与多个其他参数互斥。 更多信息请参见参考文档。

参数

ALIAS

mc-cmd

Required

要检索对象锁定配置的对象完整路径。 将已配置的 S3 兼容服务的 alias 作为 ALIAS 存储桶路径前缀。 例如:

mc retention info play/mybucket/object.txt
  • 如果 ALIAS 指定的是存储桶或存储桶前缀,请添加

    --recursive,以返回该存储桶或前缀下所有对象的对象锁定设置。

  • 如果 ALIAS 存储桶已启用版本控制,

    mc retention info 默认仅作用于对象的最新版本。 使用 --version-id--versions 可返回特定版本或对象全部版本的对象锁定设置。

--default

mc-cmd

Optional

返回 ALIAS 指定存储桶的默认对象锁定设置。

如果指定 --defaultmc retention info 会忽略所有其他标志。

--recursive, r

mc-cmd

Optional

递归返回指定 ALIAS 路径下所有对象的对象锁定设置。

--version-id 互斥。

--rewind

mc-cmd

Optional

指示 mc retention info 仅对指定时间点存在的对象版本执行操作。

  • 如需回溯到过去的特定日期,请将该日期指定为 ISO8601 格式的时间戳。 例如:--rewind "2020.03.24T10:00"
  • 如需按时间长度回溯,请将该时长指定为 #d#hh#mm#ss 格式的字符串。 例如:--rewind "1d2hh3mm4ss"

--rewind 要求指定的 ALIAS 指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用 mc version 启用或禁用存储桶版本控制。

--version-id, vid

mc-cmd

Optional

指示 mc retention info 仅对指定的对象版本执行操作。

--version-id 要求指定的 ALIAS 指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用 mc version 启用或禁用存储桶版本控制。

与以下任一标志互斥:

--versions

mc-cmd

Optional

指示 mc retention info 对存储桶中存在的所有对象版本执行操作。

--versions 要求指定的 ALIAS 指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用 mc version 启用或禁用存储桶版本控制。

同时使用 --versions--rewind,可检索某个特定时间点存在的所有对象版本的 保留设置。

全局标志

此命令支持 全局标志 中的任意选项。

示例

检索单个或多个对象的对象锁定设置

mc retention info ALIAS/PATH
  • ALIAS 替换为已配置 S3 兼容主机的 alias
  • PATH 替换为对象路径。

mc retention info--recursive 一起使用,以检索存储桶中所有对象的保留设置:

mc retention info --recursive ALIAS/PATH
  • ALIAS 替换为已配置 S3 兼容主机的 alias
  • PATH 替换为存储桶路径。

要使用此命令,存储桶 必须 启用对象锁定。 只能在创建存储桶时启用对象锁定。有关创建已启用对象锁定的存储桶的更多信息, 请参阅 mc mb --with-lock

检索存储桶的默认对象锁定设置

mc retention info--default 一起使用,以检索存储桶的默认对象锁定设置:

mc retention info --default ALIAS/PATH
  • ALIAS 替换为已配置 S3 兼容主机的

    alias

  • PATH 替换为存储桶路径。

要使用此命令,存储桶 必须 启用对象锁定。 只能在创建存储桶时启用对象锁定。有关创建已启用对象锁定的存储桶的更多信息, 请参阅 mc mb --with-lock

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

38 - mc share upload

语法

mc share upload 命令会生成一个临时的预签名 URL,并集成用于将对象上传到 MinIO 存储桶的访问凭证。该临时 URL 会在可配置的时间限制后过期。

应用程序可以通过该 URL 执行 PUT 以上传对象。

有关可共享对象 URL 的更多信息,请参阅 Amazon S3 文档中的 Pre-Signed URLs

以下命令会为 myminio MinIO 部署上的 mydata 存储桶生成一个新的预签名上传 URL:

mc share upload --recursive myminio/mydata

该命令的语法如下:

mc [GLOBALFLAGS] share upload               \
                 [--content-type "string"]  \
                 [--expire "string"]        \
                 [--recursive]              \
                 ALIAS
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required MinIO 部署的 alias 以及要为其生成上传 URL 的对象完整路径。例如:

mc share upload play/mybucket/object.txt

你可以在同一个或不同的 MinIO 部署上指定多个对象。例如:

mc share upload play/mybucket/object.txt play/mybucket/otherobject.txt

如果指定的是存储桶路径或存储桶前缀路径,则你 必须 同时指定 --recursive 参数。例如:

mc share upload --recursive play/mybucket/

mc share upload --recursive play/mybucket/myprefix/
--content-type, T

mc-cmd

Optional 将上传限制为仅接受带有特定 Content-Type 头的请求。

指定一个字符串作为可接受的 Content-Type 值。 例如,video/mp4

配置后,使用该生成 URL 的客户端必须包含指定类型的 Content-Type 头。 MinIO 会拒绝未携带正确 Content-Type 头的请求。

Content types 也称为 media types

--expire, E

mc-cmd

Optional 为所有生成的 URL 设置过期时限。

指定格式为 ##h##m##s 的字符串。例如: 12h34m56s 表示在 URL 生成后 12 小时 34 分 56 秒过期。

默认值为 168h,即 168 小时(7 天)。

--recursive, r

mc-cmd

Optional 修改 CURL URL 以支持将对象上传到存储桶或存储桶前缀。 如果任意 ALIAS 指定的是存储桶路径或存储桶前缀路径,则该选项为必需。修改后的 CURL 输出如下所示:

curl ... -F key=<NAME> -F file=@<FILE>

<FILE> 替换为要上传的文件路径。

<NAME> 替换为上传后的对象名称。 该名称可以包含 prefixes

全局参数

此命令支持 全局标志 中的任意选项。

示例

生成用于上传对象的 URL

使用 mc share upload 生成一个支持 POST 请求的 URL, 用于将文件上传到 MinIO 部署上的特定对象位置:

mc share upload --expire DURATION ALIAS/PATH
  • ALIAS 替换为 MinIO 部署的 alias
  • PATH 替换为 MinIO 部署中对象的路径。
  • DURATION 替换为 URL 过期前的时长。 例如,要设置 30 天过期时间,指定 30d

使用 mc share upload 并结合 --recursive--expire 选项,生成一个临时 URL, 该 URL 支持 POST 请求,用于将文件上传到 MinIO 部署上的存储桶:

mc share upload --recursive --expire DURATION ALIAS/PATH
  • ALIAS 替换为 MinIO 部署的 alias
  • PATH 替换为 MinIO 部署中的存储桶或存储桶前缀路径。
  • DURATION 替换为 URL 过期前的时长。 例如,要设置 30 天过期时间,指定 30d

该命令会返回一个用于向指定存储桶前缀上传对象的 CURL 命令。

  • 将返回的 CURL 命令中的 <FILE> 字符串替换为要上传的文件路径。
  • 将返回的 CURL 命令中的 <NAME> 字符串替换为存储桶中的对象名称。 该名称可以包含 prefixes

你可以使用 shell 脚本循环将文件系统目录中的内容递归上传到兼容 S3 的服务:

#!/bin/sh

for file in ~/Documents/photos/
do
   curl https://play.min.io/mybucket/ \
   -F policy=AAAAA -F x-amz-algorithm=AWS4-HMAC-SHA256 \
   -F x-amz-credential=AAAA/us-east-1/s3/aws4_request \
   -F x-amz-date=20200812T202556Z \
   -F x-amz-signature=AAAA \
   -F bucket=mybucket -F key=photos/${file} -F file=@${file}

done

此示例会将 ~/Documents/photos/ 目录中的每个文件上传到 mybucket 存储桶下的 photos 前缀。 对于如何遍历目录中的文件,请遵循你所选脚本语言文档中的最佳实践。

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

39 - mc support diag

说明

需要完成 SUBNET 注册

mc support 命令面向已在 MinIO SUBNET 注册的 MinIO 部署设计,以确保诊断和 性能测试获得最佳结果。 未注册 SUBNET 的部署无法使用 mc support 命令。

命令历史

用于创建诊断报告的命令会随版本演进而变化。

MinIO Client Release 命令 说明
RELEASE.2022-02-13T23-26-13Z mc support diag 命令移动到 mc support
RELEASE.2020-11-17T00-39-14Z mc admin subnet health 命令改为 SUBNET 子命令
RELEASE.2020-10-03T02-54-56Z mc admin health 命令重命名为 health
Original Command mc admin obd 命令重命名为 mc admin health

描述

mc support diag 命令用于为 MinIO 部署生成健康报告。

对于已注册到 MinIO 订阅网络(SUBNET)的部署,该命令会生成并上传健康报告以供分析。 你也可以启用 callhome,将每 24 小时生成并上传报告的流程自动化。

生成的健康报告供 MinIO Engineering 通过 SUBNET 使用,可能包含内部或私有数据点。 在将健康报告发送给第三方或发布到公开论坛之前,请谨慎检查。

MinIO 建议在集群首次创建时执行健康诊断,并在出现故障场景时再次执行。

使用 mc support diag 命令触发诊断测试。 对于已注册 SUBNET 的集群,该命令会将结果作为 SUBNET 健康报告的一部分上传。

对于 airgapped、受防火墙限制或其他无法从部署直接访问网络的环境,可以使用 --airgap 标志将报告保存到本地。 保存后,你可以手动将测试结果上传到 SUBNET。

示例输出

● CPU Info ... ✔
● Disk Info ... ✔
● Net Info ... ✔
● Os Info ... ✔
● Mem Info ... ✔
● Process Info ... ✔
● Server Config ... ✔
● System Errors ... ✔
● System Services ... ✔
● System Config ... ✔
● Admin Info ... ✔
*********************************************************************************
                                WARNING!!
     ** THIS FILE MAY CONTAIN SENSITIVE INFORMATION ABOUT YOUR ENVIRONMENT **
     ** PLEASE INSPECT CONTENTS BEFORE SHARING IT ON ANY PUBLIC FORUM **
*********************************************************************************
mc: MinIO diagnostics report saved to myminio-health_20231111053323.json.gz

gzip 压缩输出包含所请求的健康信息。

示例

为集群生成健康数据并自动上传到 SUBNET

为别名为 minio1 的 MinIO 集群生成健康数据,并自动传输到 SUBNET。

mc support diag minio1

仅在使用商业许可证(Commerical License)的部署中才会自动上传数据。

为集群生成健康数据并手动上传

为别名为 minio2 的 MinIO 部署生成诊断报告,并保存以便手动上传到 SUBNET:

mc support diag minio2 --airgap
  1. 运行命令下载 .gzip 文件
  2. 登录 https://subnet.min.io 并选择 Deployments 页面
  3. 选择该报告对应的部署
  4. 点击 Upload 按钮
  5. 拖放文件,或浏览到 .gzip 文件所在位置进行上传

使用严格匿名化将数据上传到 SUBNET

为别名为 myminio 的 MinIO 集群生成健康数据,并对包括主机名在内的所有敏感数据进行匿名化。

mc support diag myminio --anonymize=strict

语法

该命令语法如下:

mc [GLOBALFLAGS] support diag                   \
                         ALIAS                  \
                         [--airgap]             \
                         [--anonymize=<string>] \
                         [--api-key string]

参数

ALIAS

mc-cmd

Required

MinIO 部署的 alias

--airgap

mc-cmd

Optional

用于无法访问 SUBNET 网络的环境(例如 airgapped、受防火墙限制或类似配置)。 该参数会生成诊断报告并将其保存到运行命令时所在的位置。

你必须手动将报告上传到 SUBNET。

说明请参见 airgap 示例

如果部署本身是 airgapped,但运行 minio client 的本地设备具备网络访问能力,则无需使用 --airgap 标志。

--anonymize

mc-cmd

说明

新增: mc

RELEASE.2023-11-10T21-37-17Z

MinIO 会对上传到 SUBNET 的数据做匿名化处理。 从 mc RELEASE.2023-11-10T21-37-17Z 开始,MinIO 不会 匿名化主机名。 这是默认的 standard 匿名化模式。

可用值为 =strict=standard

若要匿名化包括主机名在内的全部数据,请将该参数设置为 strict 模式。

mc support diag minio --anonymize=strict
--api-key

mc-cmd

Optional

使用账户在 SUBNET 中的 API key 值。

仅在 airgapped 环境且 MinIO 尚未为该部署保存 API key 时才需要提供此值。

全局标志

此命令支持 全局标志 中的任意选项。

40 - mc support top locks

说明

需要完成 SUBNET 注册

mc support 命令面向已在 MinIO SUBNET 注册的 MinIO 部署设计,以确保诊断和 性能测试获得最佳结果。 未注册 SUBNET 的部署无法使用 mc support 命令。

语法

mc support top locks 命令列出 MinIO 部署中最旧的 10 个

该命令输出锁的存在时长、锁类型、所有者和资源。 输出类似如下:

Since                 Type    Owner                 Resource
13 hours ago          WRITE   10.68.100.18:9000     .minio.sys/leader.lock
13 hours ago          WRITE   10.68.100.18:9000     .minio.sys/callhome/runCallhome.lock
13 hours ago          WRITE   10.68.100.23:9000     .minio.sys/new-drive-healing/0/0

以下命令显示 alias myminio 上当前进行中的 S3 API 调用。

mc support top locks myminio/

该命令使用以下语法:

mc [GLOBALFLAGS] support top locks  \
                 [--stale]          \
                 TARGET
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

TARGET

mc-cmd

Required

命令应在其上运行的 alias 或前缀的完整路径。

--stale

mc-cmd

Optional

仅返回陈旧锁。

全局标志

此命令支持 全局标志 中的任意选项。

示例

显示 myminio 部署中最旧的 10 个锁

mc support top locks myminio/

显示 myminio 部署中的陈旧锁

以下命令显示 myminio 部署中所有进行中的 s3.PutObject 调用:

mc support top locks --stale myminio/

41 - mc tag list

语法

mc tag list 命令列出存储桶或对象上的所有标签。

以下命令列出 myminio MinIO 部署中 mydata 存储桶的标签:

mc tag list myminio/mydata

该命令语法如下:

mc [GLOBALFLAGS] tag set                   \
                 [--rewind "string"]       \
                 [--versions]              \
                 [--version-id "string"]*  \
                 ALIAS
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

mc tag list --version-id 与多个参数互斥。更多信息请参见参考文档。

参数

ALIAS

mc-cmd

Required

MinIO 部署的 alias,以及要列出全部标签的对象完整路径 (例如存储桶和对象路径)。例如:

mc tag list myminio/mybucket/object.txt
--recursive, r

mc-cmd

Optional

说明

新增: RELEASE.2023-05-04T18-10-16Z

递归列出 ALIAS 指定路径下所有对象的标签。

--rewind

mc-cmd

Optional

指示 mc tag list 仅对指定时间点存在的对象版本执行操作。

  • 如需回溯到过去的特定日期,请将该日期指定为 ISO8601 格式的时间戳。 例如:--rewind "2020.03.24T10:00"
  • 如需按时间长度回溯,请将该时长指定为 #d#hh#mm#ss 格式的字符串。 例如:--rewind "1d2hh3mm4ss"

--rewind 要求指定的 ALIAS 指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用 mc version 启用或禁用存储桶版本控制。

--versions

mc-cmd

Optional

指示 mc tag list 对存储桶中存在的所有对象版本执行操作。

--versions 要求指定的 ALIAS 指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用 mc version 启用或禁用存储桶版本控制。

--versions--rewind 组合使用,可列出特定时间点存在的 所有对象版本的标签。

--version-id, vid

mc-cmd

Optional

指示 mc tag list 仅对指定的对象版本执行操作。

--version-id 要求指定的 ALIAS 指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用 mc version 启用或禁用存储桶版本控制。

与以下参数互斥:

全局标志

此命令支持 全局标志 中的任意选项。

示例

列出存储桶或对象的标签

使用 mc tag list 列出存储桶或对象的标签:

mc tag list ALIAS/PATH
  • ALIAS 替换为 MinIO 部署的 alias
  • PATH 替换为 MinIO 部署中存储桶或对象的路径。

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

42 - mc version info

语法

mc version info 命令返回指定存储桶的版本控制状态。

以下命令返回 myminio MinIO 部署中 mybucket 存储桶的版本控制状态:

mc version info myminio/mybucket

该命令的语法如下:

mc [GLOBALFLAGS] version info ALIAS
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

要获取其版本控制状态的存储桶的完整路径。 例如:

mc version info myminio/mybucket

全局标志

此命令支持 全局标志 中的任意选项。

示例

获取存储桶版本控制状态

使用 mc version info 获取存储桶的版本控制状态:

mc version info ALIAS/PATH
  • ALIAS 替换为已配置 MinIO 部署的 alias
  • PATH 替换为要获取版本控制状态的存储桶。

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

43 - mc alias set

语法

mc alias set 命令用于在本地 mc 配置中添加或更新别名。

以下命令为运行在 URL https://myminio.example.net 的 MinIO 部署 myminio 添加一个 aliasmc 使用指定的用户名和密码对该 MinIO 部署进行身份验证:

mc alias set myminio https://myminio.example.net minioadminuser minioadminpassword

如果 myminio 别名已存在,该命令会使用新的 URL、access key 和 secret key 覆盖该别名。

mc alias set 命令语法如下:

mc [GLOBALFLAGS] alias set \
                 [--api "string"]                           \
                 [--path "string"]                          \
                 ALIAS                                      \
                 URL                                        \
                 ACCESSKEY                                  \
                 SECRETKEY
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

必填 与 S3 兼容服务关联的名称。 别名区分大小写,且必须满足以下要求:

  • 只能包含 ASCII 小写字母(a-z)、大写字母(A-Z)、数字([0-9])、连字符(-)或下划线(_)。
  • 长度为 2 个或更多字符。
  • 首字符必须是字母。
说明

变更: RELEASE.2024-01-11T05-49-32Z

别名也可以是单个字母(a-zA-Z)。

部分有效别名示例如下:

  • myminio
  • Test-1
  • A
  • a
URL

mc-cmd

必填 S3 兼容服务端点的 URL。例如:

https://minio.example.net

ACCESSKEY

mc-cmd

必填

用于对 S3 服务进行身份验证的 access key。

SECRETKEY

mc-cmd

必填

用于对 S3 服务进行身份验证的 secret key。

--api

mc-cmd

可选

指定连接到 S3 兼容服务时使用的签名计算方法。支持以下值:

  • S3v4(默认)
  • S3v2
说明

说明

AWS 将 AWS Signature V2 视为 deprecatedmc alias set 保留该选项,仅用于仍依赖 Signature V2 的 S3 存储桶或服务。

除非 S3 兼容服务明确要求,否则请使用 S3v4。 MinIO server 不依赖也不要求 S3v2,且并非所有 API 操作都可在 S3v2 上使用。

--path

mc-cmd

可选

指定服务端使用的存储桶路径查找设置。支持以下值:

  • "auto"(默认)
  • "on"
  • "off"

全局标志

此命令支持 全局标志 中的任意选项。

示例

为 MinIO 部署添加或更新别名

使用 mc alias set 添加一个供 mc 使用的 S3 兼容服务:

以下命令创建一个新的别名 myminio,指向位于 https://minio.example.net 的 MinIO 部署。该别名使用 miniouserminiopassword 凭据对该部署执行操作。

mc alias set myminio https://minio.example.net miniouser miniopassword

如果 myminio 别名已存在, mc alias set 命令会使用指定参数覆盖该别名。

mc alias set ALIAS HOSTNAME ACCESSKEY SECRETKEY
  • ALIAS 替换为与 MinIO 服务关联的名称。
  • HOSTNAME 替换为 MinIO 部署中任意节点的 URL。你也可以指定 用于管理 MinIO 部署连接的负载均衡器或反向代理 URL。
  • ACCESSKEYSECRETKEY 替换为 MinIO 部署中某个用户的凭据。

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

所需凭据与访问控制

mc alias set 要求为 S3 兼容主机指定 access key 及对应的 secret key。mc 的功能受指定凭据关联策略的限制。例如,如果 指定凭据对某个存储桶没有读写权限,mc 就无法对该存储桶执行读写操作。

有关 MinIO 访问控制的更多信息,请参阅 Access Management

有关 S3 访问控制的更完整文档,请参阅 Amazon S3 Security.

对于其他所有 S3 兼容服务,请参考对应服务的文档。

证书

MinIO Client 会获取对端证书、计算公钥指纹,并询问用户是否接受该部署的证书。

如果被信任,MinIO Client 会自动将证书颁发机构添加到:

  • Linux 和其他类 Unix 系统上的 ~/.mc/certs/CAs/
  • Windows 系统上的 C:\Users\[username]\mc\certs\CAs\

44 - mc anonymous

说明

mc anonymous 命令支持为存储桶及其内容设置或移除匿名 policies。 配置了匿名策略的存储桶允许公开访问,客户端无需进行 authentication 即可执行策略授予的任意操作。

子命令

mc anonymous 包含以下子命令:

子命令

说明

get

mc anonymous get 命令用于获取存储桶的匿名(即未认证或公共)访问 策略

get-json

mc anonymous get-json 命令用于获取存储桶的匿名(即未经身份验证或公开)访问 policies

links

mc anonymous links 获取用于匿名(即未认证或公开)访问存储桶的 HTTP URL。

list

mc anonymous list 检索存储桶的所有匿名(即未经身份验证或公开)访问策略。

set

mc anonymous set 命令为存储桶设置匿名(即未认证或公开)访问 策略

set-json

mc anonymous set-json 命令使用 IAM JSON policy document 为存储桶设置匿名(即未认证或公开)访问 policies

45 - mc anonymous list

语法

mc anonymous list 检索存储桶的所有匿名(即未经身份验证或公开)访问策略。

具有匿名策略的存储桶允许客户端在无需 身份验证 的情况下访问存储桶内容, 并执行与指定策略一致的操作。

以下命令列出 myminio MinIO 部署中 mydata 存储桶的所有匿名访问策略:

mc anonymous list myminio/mydata

该命令具有以下语法:

mc [GLOBALFLAGS] ALIAS
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

必需 要检索其匿名存储桶策略的存储桶或存储桶前缀完整路径。

指定 MinIO 或其他 S3 兼容服务的 alias以及 存储桶或存储桶前缀的完整路径。 例如:

mc anonymous list public play/mybucket

全局标志

此命令支持 全局标志 中的任意选项。

示例

列出存储桶的匿名策略

使用 mc anonymous list 列出存储桶的匿名策略:

mc anonymous list ALIAS/PATH
  • ALIAS 替换为已配置 S3 兼容主机的 alias
  • PATH 替换为目标存储桶。

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

46 - mc batch generate

说明

变更: MinIO

RELEASE.2022-10-09T21-10-59Z or later

语法

mc batch generate 命令会为指定作业类型创建一个基础的 YAML 格式模板文件。

MinIO 创建该文件后,请在你偏好的文本编辑器中打开并进一步自定义。 每个批处理文件中只能定义一个作业任务定义。

请参阅 job types 了解可生成的受支持作业。

以下命令会为 myminio 别名下 mybucket 存储桶上的 replicate 作业创建一个基础 YAML 文件。

mc batch generate myminio replicate

该命令语法如下:

mc [GLOBALFLAGS] batch generate \
                       ALIAS   \
                       JOBTYPE
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

用于生成 YAML 模板文件的 alias。 指定的 alias 不会限制你可使用该生成文件的部署位置。

例如:

mc batch generate myminio replicate
JOBTYPE

mc-cmd

Required

要生成 YAML 文档的作业类型。

支持以下取值:

全局标志

此命令支持 全局标志 中的任意选项。

示例

为 Replicate 作业类型生成 yaml 文件

以下命令会为 replicate 类型批处理作业生成 YAML 蓝图,并将文件命名为 replicate,扩展名为 .yaml

mc batch generate alias replicate > replicate.yaml
  • alias 替换为用于生成 yaml 文件的 alias

  • replicate 替换为要生成 yaml 文件的作业类型。

    mc batch 支持 replicatekeyrotate 作业类型。

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

作业类型

mc batch 当前支持以下作业任务类型:

  • replicate

    在两个 MinIO 部署之间复制对象。 以批处理作业形式提供与 bucket replication 类似的功能,而不是持续扫描功能。

  • keyrotate

    说明

    新增: MinIO

    RELEASE.2023-04-07T05-28-58Z

    为 MinIO 部署中静态对象的 sse-s3 或 sse-kms 密钥执行轮换。

  • expire

    说明

    新增: MinIO

    RELEASE.2023-12-02T10-51-33Z

    依据与 对象自动过期 类似的语义使对象过期。

replicate

你可以将以下示例配置作为构建自定义复制批处理作业的起点:

replicate:
  apiVersion: v1
  # source of the objects to be replicated
  source:
    type: TYPE # valid values are "s3" or "minio"
    bucket: BUCKET
    prefix: PREFIX # 'PREFIX' is optional
    # If your source is the 'local' alias specified to 'mc batch start', then the 'endpoint' and 'credentials' fields are optional and can be omitted
    # Either the 'source' or 'remote' *must* be the "local" deployment
    endpoint: "http[s]://HOSTNAME:PORT" 
    # path: "on|off|auto" # "on" enables path-style bucket lookup. "off" enables virtual host (DNS)-style bucket lookup. Defaults to "auto"
    credentials:
      accessKey: ACCESS-KEY # Required
      secretKey: SECRET-KEY # Required
    # sessionToken: SESSION-TOKEN # Optional only available when rotating credentials are used
    snowball: # automatically activated if the source is local
      disable: false # optionally turn-off snowball archive transfer
      batch: 100 # upto this many objects per archive
      inmemory: true # indicates if the archive must be staged locally or in-memory
      compress: false # S2/Snappy compressed archive
      smallerThan: 5MiB # create archive for all objects smaller than 5MiB
      skipErrs: false # skips any source side read() errors

  # target where the objects must be replicated
  target:
    type: TYPE # valid values are "s3" or "minio"
    bucket: BUCKET
    prefix: PREFIX # 'PREFIX' is optional
    # If your source is the 'local' alias specified to 'mc batch start', then the 'endpoint' and 'credentials' fields are optional and can be omitted

    # Either the 'source' or 'remote' *must* be the "local" deployment
    endpoint: "http[s]://HOSTNAME:PORT"
    # path: "on|off|auto" # "on" enables path-style bucket lookup. "off" enables virtual host (DNS)-style bucket lookup. Defaults to "auto"
    credentials:
      accessKey: ACCESS-KEY
      secretKey: SECRET-KEY
    # sessionToken: SESSION-TOKEN # Optional only available when rotating credentials are used

  # NOTE: All flags are optional
  # - filtering criteria only applies for all source objects match the criteria
  # - configurable notification endpoints
  # - configurable retries for the job (each retry skips successfully previously replaced objects)
  flags:
    filter:
      newerThan: "7d" # match objects newer than this value (e.g. 7d10h31s)
      olderThan: "7d" # match objects older than this value (e.g. 7d10h31s)
      createdAfter: "datetime" # match objects created after this date and time in RFC3339 format
      createdBefore: "datetime" # match objects created before this date and time in RFC3339 format

      ## NOTE: tags are not supported when "source" is remote.
      # tags:
      #   - key: "name"
      #     value: "pick*" # match objects with tag 'name', with all values starting with 'pick'

      # metadata:
      #   - key: "content-type"
      #     value: "image/*" # match objects with 'content-type', with all values starting with 'image/'

    notify:
      endpoint: "https://notify.endpoint" # notification endpoint to receive job status events
      token: "Bearer xxxxx" # optional authentication token for the notification endpoint

    retry:
      attempts: 10 # number of retries for the job before giving up
      delay: "500ms" # least amount of delay between each retry

有关各个键更完整的文档,请参阅 复制批处理作业参考

keyrotate

你可以将以下示例配置作为构建自定义密钥轮换批处理作业的起点:

keyrotate:
  apiVersion: v1
  bucket: BUCKET
  prefix: PREFIX
  encryption:
    type: sse-s3 # valid values are sse-s3 and sse-kms
    key: <new-kms-key> # valid only for sse-kms
    context: <new-kms-key-context> # valid only for sse-kms

  # optional flags based filtering criteria
  # for all objects
  flags:
    filter:
      newerThan: "7d" # match objects newer than this value (e.g. 7d10h31s)
      olderThan: "7d" # match objects older than this value (e.g. 7d10h31s)
      createdAfter: "date" # match objects created after this date and time in RFC3339 format
      createdBefore: "date" # match objects created before this date and time in RFC3339 format
      tags:
        - key: "name"
          value: "pick*" # match objects with tag 'name', with all values starting with 'pick'
      metadata:
        - key: "content-type"
          value: "image/*" # match objects with 'content-type', with all values starting with 'image/'
      kmskey: "key-id" # match objects with KMS key-id (applicable only for sse-kms)
    notify:
      endpoint: "https://notify.endpoint" # notification endpoint to receive job status events
      token: "Bearer xxxxx" # optional authentication token for the notification endpoint
    retry:
      attempts: 10 # number of retries for the job before giving up
      delay: "500ms" # least amount of delay between each retry

有关各个键更完整的文档,请参阅 密钥轮换批处理作业参考

expire

你可以将以下示例配置作为构建自定义过期批处理作业的起点:

expire:
  apiVersion: v1
  bucket: mybucket # Bucket where this job will expire matching objects from
  prefix: myprefix # (Optional) Prefix under which this job will expire objects matching the rules below.
  rules:
    - type: object  # objects with zero ore more older versions
      name: NAME # match object names that satisfy the wildcard expression.
      olderThan: 70h # match objects older than this value
      createdBefore: "2006-01-02T15:04:05.00Z" # match objects created before this date and time in RFC3339 format
      tags:
        - key: name
          value: pick* # match objects with tag 'name', all values starting with 'pick'
      metadata:
        - key: content-type
          value: image/* # match objects with 'content-type', all values starting with 'image/'
      size:
        lessThan: 10MiB # match objects with size less than this value (e.g. 10MiB)
        greaterThan: 1MiB # match objects with size greater than this value (e.g. 1MiB)
      purge:
          # retainVersions: 0 # (default) delete all versions of the object. This option is the fastest.
          # retainVersions: 5 # keep the latest 5 versions of the object.

    - type: deleted # objects with delete marker as their latest version
      name: NAME # match object names that satisfy the wildcard expression.
      olderThan: 10h # match objects older than this value (e.g. 7d10h31s)
      createdBefore: "2006-01-02T15:04:05.00Z" # match objects created before this date and time in RFC3339 format
      purge:
          # retainVersions: 0 # (default) delete all versions of the object. This option is the fastest.
          # retainVersions: 5 # keep the latest 5 versions of the object including delete markers.

  notify:
    endpoint: https://notify.endpoint # notification endpoint to receive job completion status
    token: Bearer xxxxx # optional authentication token for the notification endpoint

  retry:
    attempts: 10 # number of retries for the job before giving up
    delay: 500ms # least amount of delay between each retry

有关各个键更完整的文档,请参阅 expire 批处理作业参考

47 - mc encrypt set

语法

mc encrypt set 加密命令用于设置或更新存储桶默认的 服务端加密(SSE)模式。MinIO 会使用指定的 SSE 模式 自动加密写入该存储桶的对象。

mc encrypt set 仅支持 SSE-KMSSSE-S3

以下命令为 myminio MinIO 部署上的 mydata 存储桶设置默认的 SSE-KMS 加密密钥

mc encrypt set sse-kms "minio-encryption-key" myminio/mydata

命令语法如下:

mc [GLOBALFLAGS] encrypt set  ENCRYPTION [KMSKEY] ALIAS
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ENCRYPTION

mc-cmd

指定作为默认 SSE 模式的服务端加密类型。 支持以下取值:

  • sse-kms - 使用 KMSKEY 中指定的密钥 对对象加密。MinIO 必须能够访问外部 KMS 上指定的密钥,才能成功加密 或解密受 SSE-KMS 保护的对象。
  • sse-s3 - 使用 MINIO_KMS_KES_KEY_NAME 指定的密钥 对对象加密。MinIO 必须能够访问外部 KMS 上指定的密钥,才能成功加密 或解密受 SSE-S3 保护的对象。
KMSKEY

mc-cmd

指定用于执行 SSE 对象加密的 KMS Master Key。该选项仅在 ENCRYPTIONsse-kms 时生效。

省略该选项可让 MinIO 使用 MINIO_KMS_KES_KEY_NAME.

ALIAS

mc-cmd

要设置默认 SSE 模式的存储桶完整路径。将 MinIO 部署的 alias 作为 TARGET 路径前缀。例如:

mc encrypt set ENCRYPTION [KMSKEY] play/mybucket

全局标志

此命令支持 全局标志 中的任意选项。

示例

启用自动服务端存储桶加密

以下命令假设:

  • MinIO 服务端配置支持 SSE-KMS
  • root KMS 上存在加密密钥 minio-encryption-key
 mc encrypt set sse-kms minio-encryption-key myminio/data
mc encrypt set ENCRYPTION KMSKEY TARGET
  • ENCRYPTION 替换为 sse-kmssse-s3,具体取决于 所需的加密模式。
  • KMSKEY 替换为已配置 root KMS 中的加密密钥名称。 该参数对 sse-s3 无效。
  • TARGET 替换为要配置自动服务端存储桶加密的 MinIO 部署 alias

行为

mc encrypt set 不会对 MinIO 服务端当前的加密状态作任何假设。 如果指定了服务端无法支持的默认加密设置,可能导致非预期行为。

设置或修改默认服务端加密设置时,不会 自动加密或解密存储桶中已有内容。 如果存储桶内容 必须 保持一致的加密状态,请使用 mc mv 命令并结合 --enc-kms--enc-s3--enc-c 指定迁移内容使用的加密类型。 这会在更改存储桶默认设置 之前,手动修改存储桶内容的加密设置或加密状态。

48 - mc event rm

语法

mc event rm 命令用于从存储桶中移除事件通知触发器。

mc event remove 命令与 mc event rm 功能等效。

以下命令会在 myminio MinIO 部署的 mydata 存储桶上, 移除指定 bucket notification target 的已配置事件通知:

mc event rm myminio/mydata arn:aws:sqs::primary:target

命令语法如下:

mc [GLOBALFLAGS] event remove        \
                 ALIAS               \
                 [ARN]               \
                 [--event "string"]  \
                 [--force]           \
                 [--prefix "string"] \
                 [--suffix "string"]
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

mc [GLOBALFLAGS] event remove [FLAGS] ALIAS ARN

参数

ALIAS

mc-cmd

Required

用于移除事件通知的 S3 服务 alias 和存储桶。 例如:

mc event rm play/mybucket
ARN

mc-cmd

Required

通知目标的 Amazon Resource Name (ARN)

MinIO 服务器在启动时会为每个已配置的通知目标输出一个 ARN。 更多信息请参见 存储桶通知

可在存储桶上运行 mc event ls 获取 ARN。

--event

mc-cmd

Optional

添加事件时指定的事件类型。 这些条目 必须 与添加事件时使用的值一致。 如果没有事件与事件类型列表匹配,命令将返回 no notification configuration matched 错误。

使用逗号 , 分隔可指定多个事件。 支持的事件类型请参见 支持的存储桶事件

默认移除 ALIAS 存储桶中、与 ARN 通知目标关联且对所有事件类型触发的事件。

可通过在存储桶上运行 mc event ls 获取所使用的事件类型。 使用下表将命令输出中的事件类型转换为 mc event rm 命令所需的条目:

mv event ls 的输出 要使用的事件类型
s3:objectAccessed get
s3:objectCreated put
s3:objectRemoved delete

例如,如果 mc event ls 返回如下内容:

arn:minio:sqs::mytest:webhook   s3:ObjectAccessed:*,s3:ObjectCreated:*   Filter:

使用以下命令移除该事件:

mc event rm alias/bucket arn:minio:sqs::mytest:webhook --event get,put

事件类型的顺序无关紧要,只需包含与该事件中已有类型相同的条目即可。

--force

mc-cmd

Optional

移除 ALIAS 存储桶中与 ARN 通知目标关联的所有事件。

--prefix

mc-cmd

Optional

命令移除存储桶通知时使用的存储桶前缀。

例如,若 ALIASplay/mybucket,且 --prefixphotos,则命令仅移除 play/mybucket/photos.

--suffix

mc-cmd

Optional

命令移除存储桶通知时使用的存储桶后缀。

例如,若 ALIASplay/mybucket,且 --suffix.jpg,则命令仅移除 play/mybucket/*.jpg.

全局标志

此命令支持 全局标志 中的任意选项。

示例

从存储桶中移除事件通知

以下命令会移除某个存储桶上的所有事件通知触发器。 该命令假设 MinIO 部署中至少配置了一个 bucket notification target:

mc event rm myminio/mydata arn:minio:sqs::primary:webhook
mc event rm ALIAS ARN
  • ALIAS 替换为要在其上添加存储桶通知事件的 MinIO 部署 alias。例如:

    myminio/mydata

  • ARN 替换为通知目标 ARN.

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

49 - mc idp ldap accesskey enable

描述

mc idp ldap accesskey enable 在本地服务器上启用指定的 access key

以下示例启用 minio 部署中的 access key mykey

mc idp ldap accesskey enable minio/ mykey

该命令具有以下语法:

mc [GLOBALFLAGS] idp ldap accesskey enable  \
                                 ALIAS      \
                                 KEY
  • ALIAS 替换为配置了 AD/LDAP 集成的 MinIO 部署的 alias

  • KEY 替换为要启用的 access key。

  • 方括号 [] 表示可选参数。

  • 同一行中的参数彼此相互依赖。

  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

配置了 AD/LDAP 的 MinIO 部署的 alias

例如:

mc idp ldap accesskey enable minio mykey
KEY

mc-cmd

Required

要启用的已配置 access key。

示例

启用 minio 部署中的 access key mykey

mc idp ldap accesskey enable minio/ mykey

全局标志

此命令支持 全局标志 中的任意选项。

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

50 - mc idp ldap enable

描述

mc idp ldap enable 命令用于启用当前已配置的 AD/LDAP 提供程序。

以下示例在 myminio 部署上启用 AD/LDAP 配置。

mc idp ldap enable   \
            myminio

该命令具有以下语法:

mc [GLOBALFLAGS] idp ldap enable  \
                          ALIAS
  • ALIAS 替换为 MinIO 部署的 alias,以启用 AD/LDAP 集成。

  • 方括号 [] 表示可选参数。

  • 同一行中的参数彼此相互依赖。

  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

要启用 AD/LDAP 集成的 MinIO 部署的 alias

例如:

mc idp ldap enable myminio

全局标志

此命令支持 全局标志 中的任意选项。

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

51 - mc idp ldap policy entities

说明

mc idp ldap policy entities 命令显示用户、组和/或策略的映射关系列表。

以下示例列出 myminio 部署中某个特定策略、一组用户组以及部分用户的所有映射关系。

具体包括:

  • 映射到 finteam-policy 策略的用户。
  • 分配给 uid=bobfisher,ou=people,ou=hwengg,dc=min,dc=io 用户的策略。
  • 分配给 cn=projectb,ou=groups,ou=swengg,dc=min,dc=io 组的策略。
mc idp ldap policy entities myminio                                                  \
                            --policy finteam-policy                                  \
                            --user 'uid=bobfisher,ou=people,ou=hwengg,dc=min,dc=io'  \
                            --group 'cn=projectb,ou=groups,ou=swengg,dc=min,dc=io'

命令语法如下:

mc [GLOBALFLAGS] idp ldap policy entities                       \
                                 ALIAS                          \
                                 [--group `value`, -g `value`]  \
                                 [--policy value]               \
                                 [--user `value`, -u `value`]
  • ALIAS 替换为 MinIO 部署的 alias,用于配置 AD/LDAP 集成。

  • 在命令中可按需多次使用 --user--group 和/或 --policy 标志。

  • 对于每个标志,输出会列出映射到指定策略、用户或组的实体。

  • 省略所有标志将返回所有策略的映射关系列表。

  • 方括号 [] 表示可选参数。

  • 同一行中的参数彼此相互依赖。

  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

要显示实体映射关系的 MinIO 部署 alias

例如:

mc idp ldap policy entities myminio
--group

mc-cmd

Optional

返回与指定组关联的用户和策略列表。 重复此标志可返回多个组的列表。

--policies

mc-cmd

Optional

返回与指定策略关联的用户和组列表。 重复此标志可返回多个策略的列表。

--user

mc-cmd

Optional

返回该用户所属的组列表,以及与每个组关联的策略。 输出仅包含已分配策略的组。

重复此标志可返回多个用户的列表。

示例

以下示例列出 myminio 部署中映射到两个策略 policy1policy2 的实体,以及映射到 projectb 组的实体:

mc idp ldap policy entities myminio                                                 \
                          policy1                                                 \
                          policy2                                                 \
                          --group='cn=projectb,ou=groups,ou=swengg,dc=min,dc=io'

全局标志

此命令支持 全局标志 中的任意选项。

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

52 - mc ilm rule export

说明

变更: RELEASE.2022-12-24T15-21-38Z

mc ilm rule export 替代 mc ilm export

语法

mc ilm rule export 命令用于导出 MinIO 存储桶的对象生命周期管理配置。

mc ilm rule export 命令默认输出到 STDOUT。 你可以将内容输出到 .json 文件中进行归档,或使用 mc ilm rule import 导入。

以下命令将 myminio 部署上 mydata 存储桶的生命周期管理配置 导出到 mydata-lifecycle-config.json 文件:

mc ilm rule export myminio/mydata > mydata-lifecycle-config.json

该命令的语法如下:

mc [GLOBALFLAGS] ilm rule export ALIAS
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

要导出对象生命周期管理规则的 MinIO 部署中存储桶的 alias 和完整路径。 例如:

mc ilm rule export myminio/mydata > bucket-lifecycle.json

全局标志

此命令支持 全局标志 中的任意选项。

示例

导出存储桶生命周期管理配置

以下命令将存储桶生命周期管理配置导出到 bucket-lifecycle.json 文件:

mc ilm rule export myminio/mybucket > bucket-lifecycle.json
mc ilm rule export ALIAS > file.json
  • ALIAS 替换为 MinIO 部署的 alias 以及要导出对象生命周期管理规则的存储桶:

    myminio/mydata

  • file.json 替换为用于导出生命周期管理规则的文件名。

所需权限

有关导出规则所需的权限,请参阅父命令中的 required permissions

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

53 - mc ilm tier

说明

变更: RELEASE.2022-12-24T15-21-38Z

mc ilm tier replaces mc admin tier.

说明

mc ilm tier 命令及其子命令用于为 MinIO 的 生命周期管理:对象过渡(“分层”) 配置受支持的远程 S3 兼容服务。

使用此命令创建一个或多个层后,可使用 mc ilm rule 及其子命令创建将对象迁移到其他存储的规则。

有关更多信息,请参阅 生命周期管理 概述。

子命令

mc ilm tier 包含以下子命令:

子命令

说明

add

mc ilm tier add 命令在受支持的存储服务上创建一个新的远程存储层。

check

mc ilm tier check 命令用于显示某个部署上远程层的配置。

info

mc ilm tier info 命令可输出某个层级或某个部署上所有层级的统计信息。

ls

mc ilm tier ls 命令显示某个部署上已配置的远程层级。

rm

mc ilm tier rm 命令用于移除尚未用于转换任何对象的远程层。

update

mc ilm tier update 命令用于修改已配置的远程层。

所需权限

要为对象过渡创建层,MinIO 要求在集群上具有以下管理权限:

例如,以下策略提供了足够的权限,可为集群中的任意存储桶配置对象过渡生命周期管理规则:

{
   "Version": "2012-10-17",
   "Statement": [
      {
            "Action": [
               "admin:SetTier",
               "admin:ListTier"
            ],
            "Effect": "Allow",
            "Sid": "EnableRemoteTierManagement"
      },
      {
            "Action": [
               "s3:PutLifecycleConfiguration",
               "s3:GetLifecycleConfiguration"
            ],
            "Resource": [
                        "arn:aws:s3:::*"
            ],
            "Effect": "Allow",
            "Sid": "EnableLifecycleManagementRules"
      }
   ]
}

过渡权限

对象过渡生命周期管理规则要求远程存储层具备额外权限。 具体而言,MinIO 要求远程层凭证提供读取、写入、列出和删除权限。

例如,如果远程存储层使用基于 AWS IAM 策略的访问控制,则以下策略提供了对象迁入和迁出远程层所需的权限:

{
   "Version": "2012-10-17",
   "Statement": [
      {
            "Action": [
               "s3:ListBucket"
            ],
            "Effect": "Allow",
            "Resource": [
               "arn:aws:s3:::MyDestinationBucket"
            ],
            "Sid": ""
      },
      {
            "Action": [
               "s3:GetObject",
               "s3:PutObject",
               "s3:DeleteObject"
            ],
            "Effect": "Allow",
            "Resource": [
               "arn:aws:s3:::MyDestinationBucket/*"
            ],
            "Sid": ""
      }
   ]
}

请将 Resource 修改为 MinIO 用于对象分层的目标存储桶。

说明

避免在远程层启用版本控制

MinIO 强烈建议不要为远程层启用存储桶版本控制。 如果远程层存储桶启用了版本控制,则每个源对象版本都会过渡为远程层中的一个 唯一对象

如果你的环境要求远程层启用版本控制,则还必须允许 s3:DeleteObjectVersion 权限。

有关如何配置用户和权限以支持 MinIO 分层的更完整信息,请参阅受支持分层目标的相关文档:

54 - mc ilm tier info

描述

mc ilm tier info 命令可输出某个层级或某个部署上所有层级的统计信息。

所需权限

MinIO 要求具备以下权限,且权限范围限定为你要创建生命周期管理规则的一个或多个存储桶。

此外,在为对象转换生命周期管理规则创建远程层级时,MinIO 还要求在对应集群上具备以下管理权限:

例如,以下策略授予在集群中任意存储桶上配置对象转换生命周期管理规则的权限:

{
   "Version": "2012-10-17",
   "Statement": [
      {
            "Action": [
               "admin:SetTier",
               "admin:ListTier"
            ],
            "Effect": "Allow",
            "Sid": "EnableRemoteTierManagement"
      },
      {
            "Action": [
               "s3:PutLifecycleConfiguration",
               "s3:GetLifecycleConfiguration"
            ],
            "Resource": [
                        "arn:aws:s3:::*"
            ],
            "Effect": "Allow",
            "Sid": "EnableLifecycleManagementRules"
      }
   ]
}

语法

该命令的语法如下:

以下示例输出 myminio 部署上名为 WARM-TIER 的现有远程层级的配置信息。

 mc ilm tier info myminio WARM-TIER

该命令的语法如下:

mc ilm tier info TARGET TIER_NAME

参数

该命令接受以下参数:

TARGET

mc-cmd

Required

已配置 MinIO 部署的 alias,且目标层级存在于该部署上。

TIER_NAME

mc-cmd

Optional

要显示的现有远程层级名称。

必须 使用全大写指定层级,例如 WARM_TIER

如果未指定,MinIO 会列出该部署上所有现有层级的统计信息。

全局标志

此命令支持 全局标志 中的任意选项。

示例

显示现有层级的统计信息

以下示例显示 myminio 部署上 WARM-TIER 层级的统计信息。

mc ilm tier info myminio WARM-TIER

显示部署上所有现有层级的统计信息

以下示例显示 myminio 部署上所有现有层级的统计信息。

mc ilm tier info myminio

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

所需权限

有关查看层级所需的权限,请参阅父命令中的 required permissions

55 - mc legalhold set

语法

mc legalhold set 命令可在单个或多个对象上启用 legal hold 的一次写入多次读取(WORM)对象锁定。

mc legalhold 要求 指定的存储桶已 启用对象锁定。你 只能 在创建存储桶时启用对象锁定。 有关创建已启用对象锁定的存储桶,请参见 mc mb --with-lock 文档。

以下命令会在 myminio MinIO 部署中,对 mydata 存储桶内所有现有对象启用 legalhold WORM 锁定:

mc legalhold set --recursive myminio/mydata

该命令语法如下:

mc [GLOBALFLAGS] legalhold set  \
                 [--recursive]  \
                 [--rewind]     \
                 [--version-id] \
                 ALIAS
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

MinIO 别名,以及要启用 legal hold 的对象路径(可为单个或多个对象)。 例如:

mc legalhold set play/mybucket/myobjects/objects.txt
--recursive, r

mc-cmd

Optional

将 legal hold 应用于 ALIAS 指定存储桶或存储桶前缀下的 所有现有对象。

说明

--recursive 仅作用于现有对象

若要为后续新建对象启用 legal hold,请在有新对象创建后周期性重复执行 mc legalhold 命令。

--rewind

mc-cmd

Optional

指示 mc legalhold set 仅对指定时间点存在的对象版本执行操作。

  • 如需回溯到过去的特定日期,请将该日期指定为 ISO8601 格式的时间戳。 例如:--rewind "2020.03.24T10:00"
  • 如需按时间长度回溯,请将该时长指定为 #d#hh#mm#ss 格式的字符串。 例如:--rewind "1d2hh3mm4ss"

--rewind 要求指定的 ALIAS 指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用 mc version 启用或禁用存储桶版本控制。

--version-id, vid

mc-cmd

Optional

指示 mc legalhold set 仅对指定的对象版本执行操作。

--version-id 要求指定的 ALIAS 指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用 mc version 启用或禁用存储桶版本控制。

全局标志

此命令支持 全局标志 中的任意选项。

示例

使用 mc legalhold set 为对象启用 legal hold:

mc legalhold set [--recursive] ALIAS/PATH
  • ALIAS 替换为 S3 兼容主机的 alias
  • PATH 替换为 S3 兼容主机上的存储桶或对象路径。 如果指定的是存储桶或存储桶前缀路径,请包含 --recursive 选项。

行为

Legal hold 没有期限,并会对被锁定对象强制执行完全不可变。 只有具备 s3:PutObjectLegalHold 权限的特权用户才能设置或解除 legal hold。

Legal Hold 与其他保留模式互补

Legal hold 与 GOVERNANCE 模式COMPLIANCE 模式 保留设置互补。若对象同时受 legal hold 和 GOVERNANCE/COMPLIANCE 保留规则约束,则在 legal hold 被解除且规则到期之前, 该对象会一直保持 WORM 锁定。

对于 GOVERNANCE 锁定对象,legal hold 会阻止对象被修改, 即使 用户具备绕过保留策略所需的权限也是如此。

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

56 - mc license update

描述

使用 mc license update 命令为部署替换许可证密钥。

对于已在 MinIO SUBNET 注册的部署,MinIO 每月会自动检查并更新许可证。

示例

更新别名为 minio1 的部署许可证密钥

mc license update minio1 license.key

语法

该命令具有以下语法:

mc [GLOBALFLAGS] license update                   \
                         ALIAS                    \
                         [LICENSE-FILE-WITH-PATH] \
                         [--airgap]

参数

ALIAS

mc-cmd

Required

MinIO 部署的 alias

LICENSE-FILE-WITH-PATH

mc-cmd

Optional

用于更新部署许可证的密钥文件路径(相对于当前工作目录)和文件名。

从 SUBNET 下载 API key:

  1. 登录 MinIO SUBNET
  2. 转到 Deployments 选项卡
  3. 在页面顶部、账户统计信息框右侧,选择 API Key 按钮
  4. 选择 key 字段右侧的复制按钮,将 key 值复制到剪贴板
--airgap

mc-cmd

Optional

在无法通过网络访问 SUBNET 的环境中使用(例如 airgapped、firewalled 或类似配置)。

如果部署是 airgapped,但你使用 minio client 的本地设备有网络访问能力,则无需使用 --airgap 标志。

全局标志

此命令支持 全局标志 中的任意选项。

57 - mc replicate ls

说明

变更: RELEASE.2022-12-24T15-21-38Z

mc replicate ls 替代 mc admin bucket remote ls 命令。

语法

mc replicate ls 命令列出 MinIO 存储桶上的所有 复制规则

mc replicate list 命令与 mc replicate ls 功能等价。

以下命令列出 myminio MinIO 部署中 mydata 存储桶的所有已启用复制规则:

mc replicate ls --status "enabled" myminio/mydata

该命令的语法如下:

mc [GLOBALFLAGS] replicate ls         \
                 [--status "string"]  \
                 ALIAS
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

MinIO 部署的 alias,以及要列出复制规则的 存储桶或存储桶前缀的完整路径。例如:

mc replicate ls myminio/mybucket
--status

mc-cmd

Optional

按状态筛选存储桶上的复制规则。 指定以下值之一:

  • enabled - 仅显示已启用的复制规则。
  • disabled - 仅显示已禁用的复制规则。

如果省略,mc replicate ls 默认显示所有复制规则。

全局标志

此命令支持 全局标志 中的任意选项。

示例

列出现有复制规则

使用 mc replicate ls 列出存储桶复制规则:

mc replicate ls ALIAS/PATH
  • ALIAS 替换为 MinIO 部署的 alias
  • PATH 替换为存储桶或存储桶前缀的路径。

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

58 - mc retention clear

语法

mc retention clear 命令可移除存储桶中一个或多个对象的 Write-Once Read-Many (WORM) locking 设置。 你还可以移除存储桶的默认对象锁定设置。

要更改处于 legal hold 状态的对象的 保留状态,请使用 mc legalhold clear

以下命令会移除 myminio MinIO 部署中 mydata 存储桶的默认对象锁定配置:

mc retention clear --default myminio/mydata

该命令语法如下:

mc [GLOBALFLAGS] retention clear           \
                 [--default]               \
                 [--recursive]             \
                 [--rewind "string"]       \
                 [--version-id "string"]*  \
                 [--versions]              \
                 ALIAS
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

mc retention clear --version-id 与多个其他参数互斥。更多信息请参阅 参考文档。

参数

ALIAS

mc-cmd

Required

要清除对象锁定配置的对象或对象集合的完整路径。将已配置的 S3 兼容服务 alias 作为 ALIAS 存储桶路径前缀。例如:

mc retention clear play/mybucket/object.txt
  • 如果 ALIAS 指定的是存储桶或存储桶前缀,请添加

    --recursive,以清除存储桶内容的对象锁定设置。

  • 如果 ALIAS 存储桶已启用版本控制,mc retention clear 默认仅作用于

    最新对象版本。使用 --version-id--versions,可清除某个特定版本或对象所有版本的 对象锁定设置。

--default

mc-cmd

Optional

清除 ALIAS 指定存储桶的默认对象锁定设置。

如果指定 --defaultmc retention clear 会忽略所有其他 flag。

--recursive, r

mc-cmd

Optional

递归清除指定 ALIAS 路径下所有对象的对象锁定设置。

--version-id 互斥。

--rewind

mc-cmd

Optional

指示 mc retention clear 仅对指定时间点存在的对象版本执行操作。

  • 如需回溯到过去的特定日期,请将该日期指定为 ISO8601 格式的时间戳。 例如:--rewind "2020.03.24T10:00"
  • 如需按时间长度回溯,请将该时长指定为 #d#hh#mm#ss 格式的字符串。 例如:--rewind "1d2hh3mm4ss"

--rewind 要求指定的 ALIAS 指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用 mc version 启用或禁用存储桶版本控制。

--version-id, vid

mc-cmd

Optional

指示 mc retention clear 仅对指定的对象版本执行操作。

--version-id 要求指定的 ALIAS 指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用 mc version 启用或禁用存储桶版本控制。

与以下任一 flag 互斥:

--versions

mc-cmd

Optional

指示 mc retention clear 对存储桶中存在的所有对象版本执行操作。

--versions 要求指定的 ALIAS 指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用 mc version 启用或禁用存储桶版本控制。

--versions--rewind 组合使用,可移除在特定时间点存在的 所有对象版本的保留设置。

全局标志

此命令支持 全局标志 中的任意选项。

示例

清除单个或多个对象的对象锁定设置

mc retention clear ALIAS/PATH
  • ALIAS 替换为已配置的 S3 兼容主机 alias
  • PATH 替换为对象路径。

mc retention clear--recursive 配合使用,可清除存储桶中所有对象的 保留设置:

mc retention clear --recursive ALIAS/PATH
  • ALIAS 替换为已配置的 S3 兼容主机 alias
  • PATH 替换为存储桶路径。

要使用此命令,存储桶 必须 启用对象锁定。 只能在创建存储桶时启用对象锁定。有关创建已启用对象锁定的存储桶的更多信息, 请参阅 mc mb --with-lock

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

59 - mc share ls

语法

mc share ls 命令会显示由 mc share uploadmc share download 生成的所有未过期预签名 URL。

mc share list 命令与 mc share ls 的功能等效。

应用程序可以执行 PUT 以从该 URL 获取对象。

有关可共享对象 URL 的更多信息,请参阅 Amazon S3 文档中的 Pre-Signed URLs.

以下命令分别列出 myminio MinIO 部署中 mydata 存储桶的 所有上传和下载预签名 URL:

mc share ls upload myminio/mydata
mc share ls download myminio/mydata

该命令的语法如下:

mc [GLOBALFLAGS] share list           \
                 [download | upload]  \
                 ALIAS
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

download

mc-cmd

必需 列出所有未过期的预签名下载(GET)URL。

mc share ls upload 互斥。

upload

mc-cmd

必需 列出所有未过期的预签名上传(PUT)URL。

mc share ls download 互斥。

ALIAS

mc-cmd

必需 MinIO 部署的 alias 以及对象的完整路径, 用于列出该对象的未过期预签名 URL。

全局标志

此命令支持 全局标志 中的任意选项。

示例

列出已生成的下载和上传 URL

使用 mc share ls download 生成一个 URL, 该 URL 支持 POST 请求,用于将文件上传到 S3 兼容主机上的 特定对象位置:

mc share ls download ALIAS

使用 mc share ls upload 生成一个 URL, 该 URL 支持 POST 请求,用于将文件上传到 S3 兼容主机上的 特定对象位置:

mc share ls upload ALIAS

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

60 - mc support inspect

说明

需要完成 SUBNET 注册

mc support 命令面向已在 MinIO SUBNET 注册的 MinIO 部署设计,以确保诊断和 性能测试获得最佳结果。 未注册 SUBNET 的部署无法使用 mc support 命令。

描述

mc support inspect 命令会收集指定路径下与对象相关的数据和元数据。

对于每个指定对象,MinIO 会从存储其 纠删码分片 的各个后端驱动器汇总这些数据。 该命令会生成一个加密 zip 文件,其中包含所有匹配文件及其对应的 host+drive+path

如果诊断 MinIO SUBNET 问题需要这些信息,MinIO Engineering 会提供相应命令。 生成的报告用于 MinIO Engineering 通过 SUBNET 进行分析,且可能包含与对象相关的内部或私有数据点。 将报告发送给第三方或发布到公共论坛前请谨慎评估。

说明

变更: RELEASE.2023-01-11T03-14-16Z

该文件会上传到 MinIO,供工程团队用于支持工作。 如果文件上传失败(例如在 airgapped 环境中),则会保存到当前工作目录。

说明

变更: RELEASE.2022-12-12T19-27-27Z

在写入 zip 归档时,MinIO 还会对归档内文件名的 zip 索引进行加密。

说明

变更: RELEASE.2024-10-29T15-34-59Z

Inspect 现在会生成唯一文件名,以区分不同的 inspect 文件。 文件名会体现被检查的路径。

警告

重要

mc support inspect 要求 MinIO 部署端服务版本为 2021 年 10 月或之后。

通配符

使用 Bash shell 时,该命令支持对前缀或对象进行通配符 * 模式匹配。 对于非 Bash shell,会显示提示消息,说明通配符模式仅在 Bash 中受支持。

mc support inspect ALIAS/bucket/path/**/xl.meta

该命令会收集 ALIAS/bucket/path/ 下与对象相关的所有 xl.meta

示例

下载对象元数据

可下载某个对象的元数据。 元数据存储在 xl.meta 二进制文件中。

以下命令从 minio1 部署中的 mybucket/myobject 下载 xl.meta

该文件会从所有驱动器下载,并打包为 zip 归档文件。

mc support inspect minio1/mybucket/myobject/xl.meta

xl.meta 文件内容不可直接人工阅读。 可将 xl.meta 文件内容转换为 JSON 格式。

递归下载某个前缀下的所有对象

以下命令会递归下载某个前缀下找到的所有对象。

注意

注意

该操作的开销可能较高。 请谨慎执行。

mc support inspect minio1/mybucket/myobject/**

语法

该命令语法如下:

mc [GLOBALFLAGS] support inspect       \
                         [--legacy]   \
                         TARGET

参数

--legacy

mc-cmd

Optional

使用旧版检查数据导出方式,该方式默认不加密数据。

TARGET

mc-cmd

Required

要检查的位置或对象路径。 该路径应包含 MinIO 部署的 alias <alias>,并在需要时包含前缀和/或对象名称。

全局标志

此命令支持 全局标志 中的任意选项。

61 - mc support top disk

说明

需要完成 SUBNET 注册

mc support 命令面向已在 MinIO SUBNET 注册的 MinIO 部署设计,以确保诊断和 性能测试获得最佳结果。 未注册 SUBNET 的部署无法使用 mc support 命令。

语法

mc support top disk 命令显示当前驱动器统计信息。

以下命令显示 alias myminio 上当前正在进行的 S3 API 调用。

mc support top disk myminio/

该命令具有以下语法:

mc [GLOBALFLAGS] support top disk                     \
                             [--count, -c "integer"]  \
                             TARGET
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

TARGET

mc-cmd

Required

要运行该命令的 aliasprefix 的完整路径。

--count, -c

mc-cmd

Optional

显示统计信息,最多显示到指定数量的驱动器。

如果未提供值,该命令最多返回 10 个驱动器的统计信息。

全局标志

此命令支持 全局标志 中的任意选项。

62 - mc tag remove

语法

mc tag remove 命令用于移除存储桶或对象上的所有标签。

以下命令会移除 myminio MinIO 部署中 mydata 存储桶的标签:

mc tag remove myminio/mydata

该命令的语法如下:

mc [GLOBALFLAGS] tag remove                \
                 [--rewind "string"]       \
                 [--versions]              \
                 [--version-id "string"]*  \
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

mc tag remove --version-id 与多个参数互斥。有关更多信息,请参阅参考文档。

参数

ALIAS

mc-cmd

Required

MinIO 部署的 alias,以及要移除全部标签的对象完整路径 (例如存储桶和对象路径)。例如:

mc tag remove myminio/mybucket/object.txt
--recursive, r

mc-cmd

Optional

说明

新增: RELEASE.2023-05-04T18-10-16Z

递归移除指定 ALIAS 下所有对象的全部标签。

--rewind

mc-cmd

Optional

指示 mc tag remove 仅对指定时间点存在的对象版本执行操作。

  • 如需回溯到过去的特定日期,请将该日期指定为 ISO8601 格式的时间戳。 例如:--rewind "2020.03.24T10:00"
  • 如需按时间长度回溯,请将该时长指定为 #d#hh#mm#ss 格式的字符串。 例如:--rewind "1d2hh3mm4ss"

--rewind 要求指定的 ALIAS 指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用 mc version 启用或禁用存储桶版本控制。

--versions

mc-cmd

Optional

指示 mc tag remove 对存储桶中存在的所有对象版本执行操作。

--versions 要求指定的 ALIAS 指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用 mc version 启用或禁用存储桶版本控制。

结合使用 --versions--rewind,可移除某个特定时间点存在的所有对象版本上的标签。

--version-id, vid

mc-cmd

Optional

指示 mc tag remove 仅对指定的对象版本执行操作。

--version-id 要求指定的 ALIAS 指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用 mc version 启用或禁用存储桶版本控制。

与以下参数互斥:

全局标志

此命令支持 全局标志 中的任意选项。

示例

移除存储桶或对象上的标签

使用 mc tag remove 移除存储桶或对象上的标签:

mc tag remove ALIAS/PATH
  • ALIAS 替换为 MinIO 部署的 alias
  • PATH 替换为 MinIO 部署中存储桶 或对象的路径。

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

63 - mc version suspend

语法

mc version suspend 命令用于禁用指定存储桶上的版本控制。

以下命令会为 myminio MinIO 部署中的 mybucket 存储桶禁用版本控制:

mc version suspend myminio/mybucket

该命令的语法如下:

mc [GLOBALFLAGS] version suspend ALIAS
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

要禁用版本控制的存储桶完整路径。 例如:

mc version suspend myminio/mybucket

全局参数

此命令支持 全局标志 中的任意选项。

示例

禁用存储桶版本控制

使用 mc version suspend 为存储桶禁用版本控制:

mc version suspend ALIAS/PATH
  • ALIAS 替换为已配置 MinIO 部署的 alias
  • PATH 替换为要禁用版本控制的存储桶。

行为

现有数据下的存储桶版本控制

在包含现有版本化数据的存储桶上禁用版本控制时,不会 删除任何已版本化对象。 应用程序在禁用存储桶版本控制后仍可继续访问版本化数据。 使用 mc rm --versions ALIAS/BUCKET/OBJECT 删除某个对象及其所有版本。

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

64 - mc alias import

语法

mc alias import 命令从 JSON 文档中导入别名配置。

你可以使用 mc alias export 生成导入所需的 JSON。

以下命令从 JSON 文档中导入别名配置:

mc alias import newalias ./credentials.json

使用 mc alias list newalias 确认导入成功。

mc alias import 命令的语法如下:

mc [GLOBALFLAGS] alias import ALIAS PATH|STDIN
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

分配给导入配置的别名名称。

PATH

mc-cmd

Required

表示待导入别名配置的 JSON 对象的完整路径。

STDIN 参数互斥。

STDIN

mc-cmd

Required

指定命令使用标准输入(STDIN)作为导入 JSON 对象的来源。

PATH 参数互斥。

全局标志

此命令支持 全局标志 中的任意选项。

行为

JSON 格式

JSON 对象 必须 采用以下格式:

{
   "url" : "https://hostname:port",
   "accessKey": "<STRING>",
   "secretKey": "<STRING>",
   "api": "s3v4",
   "path": "auto"
}

你可以使用 mc alias export 命令从本地主机配置中导出现有别名。 或者,你也可以从 mc configuration file 中手动提取所需的 JSON 字段。

示例

使用标准输入导入别名

以下示例为 play.min.io 沙箱导入一个自定义别名。 你可以修改该示例,改为使用你已创建或已验证存在于该沙箱上的用户凭据:

echo '
{
 "url": "https://play.min.io",
 "accessKey": "minioadmin",
 "secretKey": "minioadmin",
 "api": "s3v4",
 "path": "auto"
}' | mc alias import play-minioadmin

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

65 - mc anonymous links

语法

mc anonymous links 获取用于匿名(即未认证或公开)访问存储桶的 HTTP URL。

配置了匿名策略的存储桶允许客户端在无需 认证 的情况下访问存储桶内容, 并执行与指定策略一致的操作。

以下命令获取 myminio MinIO 部署上 mydata 存储桶的 HTTP URL:

mc anonymous links --recursive myminio/mydata

该命令语法如下:

mc [GLOBALFLAGS] policy links   \
                 [--recursive]  \
                 ALIAS
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

必需 需要获取匿名存储桶策略的存储桶或存储桶前缀的完整路径。

指定 MinIO 或其他 S3 兼容服务的 alias以及 存储桶或 存储桶前缀的完整路径。例如:

mc anonymous links public [FLAGS] play/mybucket
--recursive

mc-cmd

可选 递归获取 HTTP 链接。

全局参数

此命令支持 全局标志 中的任意选项。

示例

列出存储桶的匿名策略

使用 mc anonymous links 列出存储桶的匿名策略:

mc anonymous links ALIAS/PATH
  • ALIAS 替换为已配置 S3 兼容主机的 alias
  • PATH 替换为目标存储桶。

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

66 - mc batch

说明

新增: mc

RELEASE.2023-03-20T17-17-53Z

新增了通过 mc batch cancel 命令取消作业的能力。

描述

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

子命令

mc batch 包含以下子命令:

子命令

描述

cancel

mc batch cancel 可停止正在进行的批处理作业。

describe

mc batch describe 命令会输出指定作业 ID 的作业定义。

generate

mc batch generate 命令会为指定作业类型创建一个基础的 YAML 格式模板文件。

list

mc batch list 命令会输出部署中当前正在进行的批处理作业列表。

start

mc batch start 命令根据批处理作业 YAML 文件启动一个批处理作业。

status

mc batch status 命令会输出 MinIO 服务器上作业事件的汇总信息。

67 - mc batch list

说明

变更: MinIO

RELEASE.2022-10-09T21-10-59Z or later

语法

mc batch list 命令会输出部署中当前正在进行的批处理作业列表。

以下命令会输出 myminio alias 上当前正在进行的所有作业列表。

mc batch list myminio

该命令的语法如下:

mc [GLOBALFLAGS] batch list TARGET           \
                            --type "string"
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

TARGET

mc-cmd

Required

要列出进行中作业的目标部署的 alias

--type

mc-cmd

Optional

仅列出指定类型的批处理作业。

全局标志

此命令支持 全局标志 中的任意选项。

示例

列出所有 replicate 类型的批处理作业

以下命令列出 alias myminio 所对应部署上的 replicate 类型作业:

mc batch list myminio --type "replicate"
  • myminio 替换为应运行该作业的 MinIO 部署的 alias

  • replicate 替换为要输出的作业类型。

    当前,mc batch 仅支持 replicate 作业类型。

上述命令的输出类似如下:

ID                      TYPE            USER            STARTED
E24HH4nNMcgY5taynaPfxu  replicate       minioadmin      1 minute ago

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

权限

你必须具有 admin:ListBatchJobs 权限,才能列出该部署上的作业。

68 - mc idp ldap accesskey info

描述

mc idp ldap accesskey info 输出指定访问密钥(一个或多个)的信息。

此命令适用于 AD/LDAP 用户在通过 MinIO 完成身份验证后创建的 访问密钥

使用 mc idp ldap accesskey create 命令创建 AD/LDAP 服务账户。

MinIO 支持使用 AssumeRoleWithLDAPIdentity 通过 Security Token Service 生成临时访问密钥。

以下示例输出 minio 部署中访问密钥 mykey 的详细信息:

mc idp ldap accesskey info minio/ mykey

该命令具有以下语法:

mc [GLOBALFLAGS] idp ldap accesskey info      \
                                    ALIAS     \
                                    KEY       \
                                    [KEY2] ...
  • ALIAS 替换为已配置 AD/LDAP 集成的 MinIO 部署的 alias

  • KEY 替换为要删除的访问密钥。 你可以使用空格分隔多个访问密钥,以列出多个密钥。

  • 方括号 [] 表示可选参数。

  • 同一行中的参数彼此相互依赖。

  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

已配置 AD/LDAP 的 MinIO 部署的 alias

例如:

mc idp ldap accesskey ls minio
KEY

mc-cmd

Required

要输出其信息的已配置访问密钥。

你可以使用空格分隔多个访问密钥,以列出多个密钥。

示例

输出 minio 部署中访问密钥 mykeymykey2 的信息。

mc idp ldap accesskey info minio/ mykey mykey2

全局标志

此命令支持 全局标志 中的任意选项。

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

69 - mc idp ldap info

描述

mc idp ldap info 命令输出指定 MinIO 部署上 AD/LDAP 提供程序的当前配置。

以下示例输出 myminio 部署上的 AD/LDAP 配置设置。

mc idp ldap info     \
            myminio

该命令具有以下语法:

mc [GLOBALFLAGS] idp ldap info   \
                          ALIAS
  • ALIAS 替换为 MinIO 部署的 alias,以获取 AD/LDAP 集成信息。

  • 方括号 [] 表示可选参数。

  • 同一行中的参数彼此相互依赖。

  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

要输出当前 AD/LDAP 配置的 MinIO 部署 alias

例如:

mc idp ldap info myminio

全局标志

此命令支持 全局标志 中的任意选项。

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

70 - mc ilm rule import

说明

变更: RELEASE.2022-12-24T15-21-38Z

mc ilm rule import 替代 mc ilm import

语法

mc ilm rule import 命令导入对象生命周期管理配置, 并将其应用到 MinIO 存储桶。

mc ilm rule import 命令默认从 STDIN 导入。 你可以从 .json 文件输入内容,例如由 mc ilm rule export 生成的文件。

以下命令从 mydata-lifecycle-config.json 导入生命周期管理配置, 并将其应用到 myminio 部署中的 mydata 存储桶:

mc ilm rule import myminio/mydata < mydata-lifecycle-config.json

命令语法如下:

mc [GLOBALFLAGS] ilm rule import ALIAS < STDIN
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

MinIO 部署上用于导入对象生命周期管理规则的存储桶的 alias 和完整路径。 例如:

mc ilm rule import myminio/mydata < bucket-lifecycle.json

全局标志

此命令支持 全局标志 中的任意选项。

示例

导入存储桶生命周期管理配置

以下命令从 bucket-lifecycle.json 文件导入 存储桶生命周期管理配置:

mc ilm rule import myminio/mybucket < bucket-lifecycle.json
mc ilm rule import ALIAS < file.json
  • ALIAS 替换为 MinIO 部署的 alias 以及要导入对象生命周期管理规则的存储桶:

    myminio/mydata

  • file.json 替换为用于导入生命周期管理规则的文件名。

所需权限

有关导入规则所需的权限,请参阅父命令中的 required permissions

行为

导入配置会覆盖现有规则

mc ilm rule import 会使用导入的 JSON 配置中定义的规则 替换当前的存储桶生命周期管理规则。

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

71 - mc ilm tier ls

说明

变更: RELEASE.2022-12-24T15-21-38Z

mc ilm tier ls replaces mc admin tier ls.

描述

mc ilm tier ls 命令显示某个部署上已配置的远程层级。

mc ilm tier list 命令与 mc ilm tier ls 功能等效。

语法

该命令的语法如下:

以下示例输出 myminio 部署上现有远程层级的列表。

 mc ilm tier ls myminio

该命令的语法如下:

mc ilm tier ls TARGET TIER_NAME

参数

该命令接受以下参数:

TARGET

mc-cmd

Required

已配置 MinIO 部署的 alias,且目标层级存在于该部署上。

全局标志

此命令支持 全局标志 中的任意选项。

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

所需权限

有关查看层级所需的权限,请参阅父命令中的 required permissions

72 - mc replicate update

说明

变更: RELEASE.2022-12-24T15-21-38Z

mc replicate update 替代了 mc admin bucket remote update 命令。

说明

变更: RELEASE.2022-11-07T23-47-39Z

mc replicate update 替代了 mc replicate edit 命令。

语法

mc replicate update 命令用于修改现有的 存储桶复制规则

mc [GLOBALFLAGS] replicate update FLAGS [FLAGS] ARGUMENTS [ARGUMENTS]

以下命令会修改 myminio MinIO 部署中 mydata 存储桶的一条现有复制规则:

mc replicate update --id "c76um9h4b0t1ijr36mug"           \
   --replicate "delete,delete-marker,existing-objects"  \
   myminio/mydata

新的复制配置会将所有版本化删除操作、删除标记创建以及现有对象 同步到远端 MinIO 部署。

命令语法如下:

mc [GLOBALFLAGS] replicate update              \
                 --remote-bucket string          \
                 [--bandwidth "string"]            \
                 [--healthcheck-seconds integer]   \
                 [--id "string"]                   \
                 [--limit-upload "string"]         \
                 [--limit-download "string"]       \
                 [--path "string"]                 \
                 [--priority int]                  \
                 [--proxy]
                 [--replicate "string"]            \
                 [--state string]
                 [--storage-class "string"]        \
                 [--sync string]                          \
                 [--tags "string"]                 \
                 ALIAS
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

要修改复制规则的 MinIO 部署 alias 以及存储桶或存储桶前缀的完整路径。 例如:

mc replicate update --id "c75nrap4b0talo3ipthg" [FLAGS]
--id

mc-cmd

Required

指定已配置复制规则的唯一 ID。 使用 mc replicate ls 命令列出存储桶的复制规则。

--bandwidth

mc-cmd

Optional

将带宽速率限制为不超过指定值,单位可为 KiB/s、MiB/s 或 GiB/s。 有效单位包括:

  • B 表示 bytes
  • K 表示 kilobytes
  • G 表示 gigabytes
  • T 表示 terabytes
  • Ki 表示 kibibytes
  • Gi 表示 gibibytes
  • Ti 表示 tebibytes

例如,要将带宽速率限制为不超过 1 GiB/s,可使用:

--limit-upload 1Gi

如果未指定,MinIO 不限制带宽速率。

--healthcheck-seconds

mc-cmd

Optional

远端存储桶健康状态检查之间的时间间隔(秒)。

如果未指定,MinIO 使用 60 秒间隔。

--limit-download

mc-cmd

Optional

将下载速率限制为不超过指定值,单位可为 KiB/s、MiB/s 或 GiB/s。 有效单位包括:

  • B 表示 bytes
  • K 表示 kilobytes
  • G 表示 gigabytes
  • T 表示 terabytes
  • Ki 表示 kibibytes
  • Gi 表示 gibibytes
  • Ti 表示 tebibytes

例如,要将下载速率限制为不超过 1 GiB/s,可使用:

--limit-download 1G

如果未指定,MinIO 使用不限速下载。

--limit-upload

mc-cmd

Optional

将上传速率限制为不超过指定值,单位可为 KiB/s、MiB/s 或 GiB/s。 有效单位包括:

  • B 表示 bytes
  • K 表示 kilobytes
  • G 表示 gigabytes
  • T 表示 terabytes
  • Ki 表示 kibibytes
  • Gi 表示 gibibytes
  • Ti 表示 tebibytes

例如,要将上传速率限制为不超过 1 GiB/s,可使用:

--limit-upload 1G

如果未指定,MinIO 使用不限速上传。

--path

mc-cmd

Optional

为远端存储桶启用 path-style 查找支持。

有效值包括:

  • on - 使用路径查找来定位远端存储桶
  • off - 使用资源定位符样式(如域名或 IP 地址)查找来定位远端存储桶
  • auto - 让 MinIO 自动识别用于定位远端存储桶的正确查找类型

未定义时,MinIO 使用 auto 值。

--priority

mc-cmd

Optional

指定复制规则的整数优先级。 该值 必须 在源存储桶的所有其他规则中唯一。 数值越高,优先级越

--proxy

mc-cmd

Optional

在存储桶之间定义 active-active 复制时,是否使用代理。

有效值包括:

  • enable - 在 active-active 复制中启用代理。
  • disable - 在 active-active 复制中禁用代理。

默认情况下,MinIO 默认为 enable

--remote-bucket

mc-cmd

Optional

指定远端位置的凭据、目标部署和存储桶。 值可以是 alias 与存储桶,也可以是基于位置(IP 或 URL)或基于路径的形式。

例如,基于 URL 的目标可能如下:

--remote-bucket https://user:[email protected]:9001/bucket

基于 alias 的目标可能如下:

--remote-bucket minio-target/my-bucket
--replicate

mc-cmd

Optional

指定由逗号分隔的以下值列表,以启用扩展复制功能:

  • delete - 指示 MinIO 将 DELETE operations 复制到目标存储桶。

  • delete-marker - 指示 MinIO 将删除标记复制到目标存储桶。

  • replica-metadata-sync - 指示 MinIO 将已复制对象上仅元数据的变更同步回源端。 该功能仅影响 双向 active-active 复制配置。

    省略此值会使 MinIO 停止将仅元数据变更复制回源端。

  • existing-objects - 指示 MinIO 复制在配置或启用复制之前已创建的对象。 默认情况下,MinIO 不会 将现有对象同步到远端目标。

    更多信息参见 现有对象的复制

--state

mc-cmd

Optional

启用或禁用复制规则。 指定以下值之一:

  • "enable" - 启用复制规则。
  • "disable" - 禁用复制规则。

在复制被禁用期间创建的对象,在重新启用规则后不会立即具备复制资格。 你必须在传给 mc replicate update --replicate 的复制功能列表中包含 "existing-objects",以显式启用现有对象复制。

更多信息参见 现有对象的复制

--storage-class

mc-cmd

Optional

指定要应用到已复制对象上的 MinIO storage class

--sync

mc-cmd

Optional

为此远端目标启用同步复制。

默认情况下,MinIO 使用异步复制。

--tags

mc-cmd

Optional

指定一个或多个以与号 & 分隔的键值对标签,MinIO 使用这些标签来筛选待复制对象。例如:

mc replicate update --id "ID" --tags "TAG1=VALUE&TAG2=VALUE&TAG3=VALUE"

MinIO 会将复制规则应用到标签集中 包含指定复制标签的任何对象。

全局标志

此命令支持 全局标志 中的任意选项。

示例

修改现有复制规则

使用 mc replicate update 修改现有复制规则。

mc replicate update ALIAS/PATH \
   --id ID                     \
   [--FLAGS]
  • ALIAS 替换为 MinIO 部署的 alias
  • PATH 替换为该规则所在存储桶或存储桶前缀的路径。
  • ID 替换为要修改规则的唯一标识符。 使用 mc replicate ls 获取该存储桶上的复制规则列表及其对应标识符。
说明

说明

修改复制配置规则不会影响已经复制的对象。 例如,修改 --tags 过滤器不会删除不满足过滤条件的已复制对象。

更新现有复制规则的凭据

使用 mc replicate update 修改现有复制规则。

mc replicate update ALIAS/PATH \
   --id ID                     \
   --remote-bucket https://user:[email protected]:9001/mybucket
  • ALIAS 替换为 MinIO 部署的 alias
  • PATH 替换为该规则所在存储桶或存储桶前缀的路径。
  • ID 替换为更新后的凭据、路径和存储桶。

禁用或启用现有复制规则

使用带 --state 标志的 mc replicate update 来禁用或启用复制规则。

mc replicate update ALIAS/PATH \
   --id ID \
   --state "disable"|"enable"
  • ALIAS 替换为 MinIO 部署的 alias
  • PATH 替换为该规则所在存储桶或存储桶前缀的路径。
  • ID 替换为要修改规则的唯一标识符。 使用 mc replicate ls 获取该存储桶上的复制规则列表及其对应标识符。
  • --state 标志中指定 "disable""enable",以禁用或启用复制规则。
说明

说明

MinIO 需要启用 现有对象复制,才能同步在禁用复制规则后写入或删除的对象。

对于 启用现有对象复制的规则,MinIO 仅同步复制规则处于 启用 状态期间发生的写入或删除操作。

行为

所需权限

MinIO 强烈建议创建专门用于支持存储桶复制操作的用户。 有关向 MinIO 部署添加用户和策略的更完整文档,请参见 mc admin usermc admin policy

以下策略提供在部署上配置并启用复制所需的权限。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "admin:SetBucketTarget",
                "admin:GetBucketTarget",
                "admin:ListBatchJobs",
                "admin:DescribeBatchJob",
                "admin:StartBatchJob",
                "admin:CancelBatchJob"
            ],
            "Effect": "Allow",
            "Sid": "EnableRemoteBucketConfiguration"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetReplicationConfiguration",
                "s3:ListBucket",
                "s3:ListBucketMultipartUploads",
                "s3:GetBucketLocation",
                "s3:GetBucketVersioning",
                "s3:GetObjectRetention",
                "s3:GetObjectLegalHold",
                "s3:PutReplicationConfiguration"
            ],
            "Resource": [
                "arn:aws:s3:::*"
            ],
            "Sid": "EnableReplicationRuleConfiguration"
        }
    ]
}
  • "EnableRemoteBucketConfiguration" 语句授予创建远端目标以支持复制的权限。
  • "EnableReplicationRuleConfiguration" 语句授予在存储桶上创建复制规则的权限。"arn:aws:s3:::* 资源将复制权限应用到源部署上的 任意 存储桶。你可以按需将用户策略限制到特定存储桶。

使用 mc admin policy create 将该策略添加到每个作为复制源的部署。使用 mc admin user add 在部署上创建用户,并使用 mc admin policy attach 将该策略关联到该新用户。

以下策略提供将复制数据同步 该部署所需的权限。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetReplicationConfiguration",
                "s3:ListBucket",
                "s3:ListBucketMultipartUploads",
                "s3:GetBucketLocation",
                "s3:GetBucketVersioning",
                "s3:GetBucketObjectLockConfiguration",
                "s3:GetEncryptionConfiguration"
            ],
            "Resource": [
                "arn:aws:s3:::*"
            ],
            "Sid": "EnableReplicationOnBucket"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetReplicationConfiguration",
                "s3:ReplicateTags",
                "s3:AbortMultipartUpload",
                "s3:GetObject",
                "s3:GetObjectVersion",
                "s3:GetObjectVersionTagging",
                "s3:PutObject",
                "s3:PutObjectRetention",
                "s3:PutBucketObjectLockConfiguration",
                "s3:PutObjectLegalHold",
                "s3:DeleteObject",
                "s3:ReplicateObject",
                "s3:ReplicateDelete"
            ],
            "Resource": [
                "arn:aws:s3:::*"
            ],
            "Sid": "EnableReplicatingDataIntoBucket"
        }
    ]
}
  • "EnableReplicationOnBucket" 语句授予远端目标检索存储桶级配置的权限,以支持对 MinIO 部署中 所有 存储桶执行复制操作。 若要将策略限制到特定存储桶,可在 Resource 数组中以 "arn:aws:s3:::bucketName" 形式指定这些存储桶。
  • "EnableReplicatingDataIntoBucket" 语句授予远端目标将数据同步到 MinIO 部署中 任意 存储桶的权限。 若要将策略限制到特定存储桶,可在 Resource 数组中以 "arn:aws:s3:::bucketName/*" 形式指定这些存储桶。

使用 mc admin policy create 将该策略添加到每个作为复制目标的部署。使用 mc admin user add 在部署上创建用户,并使用 mc admin policy attach 将该策略关联到该新用户。

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

73 - mc support perf

说明

变更: RELEASE.2022-07-24T02-25-13Z

mc support perf 替代 mc admin speedtest 命令。

说明

需要完成 SUBNET 注册

mc support 命令面向已在 MinIO SUBNET 注册的 MinIO 部署设计,以确保诊断和 性能测试获得最佳结果。 未注册 SUBNET 的部署无法使用 mc support 命令。

描述

使用 mc support perf 命令可检查 S3 API(读/写)、网络 IO 和存储(磁盘读/写)的性能。

测试结果可为部署在 S3 GETPUT 请求下的性能提供总体参考,并识别潜在瓶颈。 如需更完整的性能测试,建议结合预发应用环境中的负载测试与 MinIO WARP S3 基准测试工具。

mc support perf 包含以下子命令

  1. drive

    测量 MinIO 部署中磁盘的速度。

    mc support perf drive 在测试期间会临时暂停 S3 API 调用。 命令运行期间,传入请求会保存在队列中。 命令完成或结束后,MinIO 会处理排队请求并恢复正常运行。

  2. object

    测量集群中对象读写速度。

  3. net

    测量所有节点的网络吞吐量。

    mc support perf net 在测试期间会临时暂停 S3 API 调用。 命令运行期间,传入请求会保存在队列中。 命令完成或结束后,MinIO 会处理排队请求并恢复正常运行。

  4. client

    测量到客户端的网络吞吐量。

  5. site-replication

    测量站点复制操作的速度。

说明

需要完成 SUBNET 注册

mc support 命令面向已在 MinIO SUBNET 注册的 MinIO 部署设计,以确保诊断和 性能测试获得最佳结果。 未注册 SUBNET 的部署无法使用 mc support 命令。

示例

测量对象速度

在别名 minio1 上,测量某个对象的 S3 读写性能。 MinIO 会自动调优并发度,以获得最大吞吐量和 IOPS(Input/Output Per Second)。

mc support perf object minio1

在指定时长内测量指定大小对象的速度

在别名 minio1 上,对大小为 128MiB 的对象运行 20 秒的 S3 读写性能测试。 MinIO 会自动调优并发度以获得最大吞吐量。

mc support perf object minio1 --duration 20s --size 128MiB

使用默认规格测试所有节点上的全部磁盘速度

在别名为 minio1 的集群上,对所有节点上的所有磁盘执行读写性能测量。 该命令未指定 blocksize,因此使用默认值 4MiB。

mc support perf drive minio1

使用自定义规格测试磁盘速度

在别名为 minio1 的集群上执行磁盘读写性能测量,指定 blocksize 为 64KiB,且每个磁盘读写数据量为 2GiB。

mc support perf drive minio1 --blocksize 64KiB --filesize 2GiB

测试网络吞吐量

在别名为 minio1 的集群上运行网络吞吐量测试。

mc support perf net minio1

测试站点复制速度

测试站点 minio1 到其他已配置对等站点的站点复制操作速度。

mc support perf site-replication minio1

语法

mc support perf drive

mc-cmd

测量集群中磁盘的读写速度。

mc [GLOBAL FLAGS] support perf drive   \
                [--concurrent]         \
                [--verbose, -v]        \
                [--filesize]           \
                [--blocksize]          \
                [--serial]             \
                [--airgap]             \
                ALIAS

mc support perf object

mc-cmd

测量集群中对象读写的 S3 性能。

mc [GLOBAL FLAGS] support perf object  \
                [--size]               \
                [--concurrent]         \
                [--verbose, -v]        \
                [--airgap]             \
                ALIAS

mc support perf net

mc-cmd

测量集群中所有节点的网络吞吐量。

mc [GLOBAL FLAGS] support perf net  \
                [--concurrent]      \
                [--verbose, -v]     \
                [--serial]          \
                [--airgap]          \
                ALIAS

mc support perf client

mc-cmd

测量运行 MinIO Client 的本地设备到服务器的网络吞吐量。

mc [GLOBAL FLAGS] support perf client  \
                --duration             \
                [--verbose, -v]        \
                [--airgap]             \
                ALIAS

mc support perf site-replication

mc-cmd

测量从指定 ALIAS 到其他已配置对等站点的站点复制操作速度。

mc [GLOBAL FLAGS] support perf site-replication \
                  --duration                    \
                  [--verbose, -v]               \
                  ALIAS

参数

--airgap

mc-cmd

Optional

用于无法通过网络访问 SUBNET 的环境(例如 airgapped、受防火墙限制或类似配置)。

如果部署本身是 airgapped,但你使用 minio client 的本地设备可以访问网络,则无需使用 --airgap 标志。

--size

mc-cmd

Optional

适用于 object 命令。

指定上传和下载性能测试所使用的对象大小。

未指定时,默认值为 64MiB

使用 --size <value>,其中 <value> 为数字加存储单位 KiBMiBGiB

--concurrent

mc-cmd

Optional

适用于 driveobjectnet 命令。

指定每台服务器用于测试的并发请求数。

未指定时,默认值为 32

使用 --concurrent <value>,其中 <value> 为数字。

--verbose, -v

mc-cmd

Optional

适用于 driveobjectnet 命令。

在输出中显示每台服务器的统计信息。

--filesize

mc-cmd

Optional

适用于 drive 命令。

指定每个磁盘读取或写入的数据总量。

未指定时,默认值为 1GiB

使用 --filesize <value>,其中 <value> 为数字和存储单位 KiBMiBGiB

--blocksize

mc-cmd

Optional

适用于 drive 命令。

指定读写块大小。

未指定时,默认值为 4MiB

使用 --filesize <value>,其中 <value> 为数字和存储单位,使用标准存储单位缩写。

--serial

mc-cmd

Optional

适用于 drivenet 命令。

逐个对磁盘执行性能测试。

ALIAS

mc-cmd

Required

适用于 driveobjectnetclient 命令。

MinIO 部署的 alias

--duration

mc-cmd

Required

适用于 client 命令。

执行测试的时长(秒)。 时间不能为 0 或负数。

全局标志

此命令支持 全局标志 中的任意选项。

74 - mc support top net

说明

需要完成 SUBNET 注册

mc support 命令面向已在 MinIO SUBNET 注册的 MinIO 部署设计,以确保诊断和 性能测试获得最佳结果。 未注册 SUBNET 的部署无法使用 mc support 命令。

语法

mc support top net 命令用于显示实时网络指标。

以下命令显示 alias myminio 部署当前的实时网络指标。

mc support top net myminio/

输出将返回服务器 URL、网络接口、接收速率、发送速率和系统消息等信息。

该命令的语法如下:

mc [GLOBALFLAGS] support top disk                \
                             [--interval value]  \
                             TARGET
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

TARGET

mc-cmd

Required

命令应运行的 aliasprefix 的完整路径。

--interval

mc-cmd

Optional

两次指标请求之间的间隔(秒)。

默认情况下,命令每秒请求一次指标。

全局参数

此命令支持 全局标志 中的任意选项。

75 - mc alias export

说明

新增: mc.RELEASE.2023-11-15T22-45-58Z

语法

mc alias export 命令从现有的 configuration 中导出别名配置。

该命令将结果输出到 STDOUT,你可以将输出保存为文件, 按需进一步修改输出内容。

使用 mc alias import 命令导入生成的 JSON 配置。

以下命令从现有主机导出别名配置并输出到文件:

mc alias export play > play.json

该命令会将内容输出到标准输出(STDOUT)。 你也可以将输出通过管道传递给所选工具执行后续操作。

mc alias export 命令的语法如下:

mc [GLOBALFLAGS] alias export ALIAS
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

要导出的别名名称。

全局标志

此命令支持 全局标志 中的任意选项。

行为

JSON 格式

该命令输出一个符合以下结构的 JSON 对象:

{
   "url" : "https://hostname:port",
   "accessKey": "<STRING>",
   "secretKey": "<STRING>",
   "api": "s3v4",
   "path": "auto"
}

你可以使用 mc alias import 导入该 JSON 文档。

示例

导出并转换别名

以下示例导出 play.min.io 沙箱的别名。 随后使用 jq 工具转换该配置,并基于修改后的配置创建新别名:

mc alias export play | jq '.accessKey = "minioadmin" | .secretKey = "minioadmin"' | mc alias import play-custom

备份别名配置

以下命令将别名配置导出为 JSON 文件。 然后你可以按你偏好的流程备份该文件。

mc alias export play > play-backup.json

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

76 - mc anonymous get-json

语法

mc anonymous get-json 命令用于获取存储桶的匿名(即未经身份验证或公开)访问 policies

配置了匿名策略的存储桶允许客户端在无需 authentication 的情况下访问存储桶内容,并执行与指定策略一致的操作。

以下命令检索 myminio MinIO 部署上 mydata 存储桶的 JSON 格式匿名策略:

mc anonymous get-json myminio/mydata

该命令使用以下语法:

mc [GLOBALFLAGS] get-json ALIAS
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

必需 要获取匿名存储桶策略的存储桶或存储桶前缀的完整路径。

指定 MinIO 或其他 S3 兼容服务的 alias以及 存储桶或存储桶前缀的完整路径。例如:

mc anonymous get-json public play/mybucket

全局标志

此命令支持 全局标志 中的任意选项。

示例

获取存储桶的匿名策略

使用 mc anonymous get-json 获取存储桶的匿名策略:

mc anonymous get-json ALIAS/PATH
  • ALIAS 替换为已配置 S3 兼容主机的 alias
  • PATH 替换为目标存储桶。

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

77 - mc batch start

说明

变更: MinIO

RELEASE.2022-10-09T21-10-59Z or later

语法

mc batch start 命令根据批处理作业 YAML 文件启动一个批处理作业。

批处理作业会运行一次直到完成(或达到文件中指定的最大重试次数)。 若要在完成后再次运行该批处理作业,必须重新启动它。

以下命令会在 myminio 别名的 mybucket 存储桶上,为 replicate 作业创建一个基础 YAML 文件。

mc batch start myminio jobfile.yaml

上述命令的输出类似如下:

Successfully start 'replicate' job `B34HHqnNMcg1taynaPfxu` on '2022-10-24 17:19:06.296974771 -0700 PDT'

该命令具有以下语法:

mc [GLOBALFLAGS] batch start    \
                       ALIAS   \
                       JOBFILE
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

用于启动批处理作业的 alias

例如:

mc batch start myminio replicate.yaml
JOBFILE

mc-cmd

Required

YAML 定义的批处理作业。 作业可按需包含任意数量的任务;没有预定义的限制。

全局标志

此命令支持 全局标志 中的任意选项。

示例

启动批处理作业

以下命令会在 alias myminio 对应的部署上,启动 replication.yaml 文件中定义的一批作业:

mc batch start myminio ./replication.yaml
  • myminio 替换为应运行该作业的 MinIO 部署 alias
  • ./replication.yaml 替换为描述批处理作业的 YAML 格式文件。 使用相对于当前位置的文件路径。

上述命令的输出类似如下:

Successfully start 'replicate' job `E24HH4nNMcgY5taynaPfxu` on '2022-09-26 17:19:06.296974771 -0700 PDT'

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

权限

要启动作业,必须在该部署上具有 admin:StartBatchJob 权限。

78 - mc cat

语法

mc cat 命令将文件或对象的内容连接到另一个文件或对象。 你也可以使用该命令将指定文件或对象的内容输出到 STDOUTcat 的功能与 cat 类似。

以下命令将 MinIO 部署中某个对象的内容输出到 STDOUT

mc cat play/mybucket/myobject.txt

mc cat 命令语法如下:

mc [GLOBALFLAGS] cat                       \
                 ALIAS [ALIAS ...]         \
                 [--enc-c "value"]         \
                 [--offset "int"]          \
                 [--part-number "int"]     \
                 [--rewind]                \
                 [--tail "int"]            \
                 [--version-id "string"]   \
                 [--zip]
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

你也可以将 mc cat 用于本地文件系统,以获得与 cat 命令行工具类似的结果。

参数

ALIAS

mc-cmd

Required

MinIO 部署的 alias 以及对象的完整路径。例如:

mc cat myminio/mybucket/myobject.txt

你可以指定同一或不同 MinIO 部署中的多个对象。例如:

mc cat myminio/mybucket/object.txt myminio/myotherbucket/object.txt

对于本地文件系统上的对象,请指定该对象的完整路径。例如:

mc cat ~/data/object.txt
--enc-c

mc-cmd

Optional

使用客户端管理的密钥,通过服务端 SSE-C 加密 对对象进行加密或解密。

该参数接受格式为 KEY=VALUE 的键值对。

KEY

对象的完整路径,格式为 alias/bucket/path/object.ext

你也可以只指定顶层路径,以便对该路径下的所有操作使用同一个加密密钥。

VALUE

指定用于 SSE-C 加密的密钥,可以是 32 字节 RawBase64 编码密钥, 也可以是 64 字节十六进制编码密钥。

Raw Base64 编码 不接受= 填充的密钥。 请去掉填充,或使用支持 RAW 格式的 Base64 编码器。

  • KEY - 对象的完整路径,格式为 alias/bucket/path/object
  • VALUE - 用于加密对象的 32 字节 RAW Base64 编码数据密钥。

例如:

# RawBase64-Encoded string "mybucket32byteencryptionkeyssec"
--enc-c "myminio/mybucket/prefix/object.obj=bXlidWNrZXQzMmJ5dGVlbmNyeXB0aW9ua2V5c3NlYwo"

你可以通过重复该参数来指定多个加密密钥。

也可以指定某个前缀路径,对该路径下所有匹配对象应用加密:

--enc-c "myminio/mybucket/prefix/=bXlidWNrZXQzMmJ5dGVlbmNyeXB0aW9ua2V5c3NlYwo"
说明

说明

MinIO 强烈不建议在生产负载中使用 SSE-C 加密。 请改用 --enc-kms 参数启用 SSE-KMS,或使用 --enc-s3 参数启用 SSE-S3。

--offset

mc-cmd

Optional

指定一个整数,表示命令输出的字节偏移位置。

--part-number 标志互斥。

--part-number

mc-cmd

Optional

下载分段上传中的指定分段编号。 指定要下载的分段编号整数值。

--offset--tail 标志互斥。

--rewind

mc-cmd

Optional

指示 mc cat 仅对指定时间点存在的对象版本执行操作。

  • 如需回溯到过去的特定日期,请将该日期指定为 ISO8601 格式的时间戳。 例如:--rewind "2020.03.24T10:00"
  • 如需按时间长度回溯,请将该时长指定为 #d#hh#mm#ss 格式的字符串。 例如:--rewind "1d2hh3mm4ss"

--rewind 要求指定的 ALIAS 指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用 mc version 启用或禁用存储桶版本控制。

--tail

mc-cmd

Optional

指定一个整数,表示命令从该字节数开始裁剪输出。

--part-number 标志互斥。

--version-id, vid

mc-cmd

Optional

指示 mc cat 仅对指定的对象版本执行操作。

--version-id 要求指定的 ALIAS 指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用 mc version 启用或禁用存储桶版本控制。

--zip

mc-cmd

Optional

将源端 zip 文件中的内容提取到远端。 要求源 ALIAS 为 MinIO 部署。

全局标志

此命令支持 全局标志 中的任意选项。

示例

查看 S3 对象

使用 mc cat 返回对象:

mc cat ALIAS/PATH
  • ALIAS 替换为 S3 兼容主机的 alias
  • PATH 替换为对象在 S3 兼容主机上的路径。

按时间点查看 S3 对象

使用 mc cat --rewind 返回过去某个特定时间点的对象:

mc cat ALIAS/PATH --rewind DURATION
  • ALIAS 替换为 S3 兼容主机的 alias
  • PATH 替换为对象在 S3 兼容主机上的路径。
  • DURATION 替换为命令返回对象时对应的 过去时间点。例如,指定 30d 可返回当前日期前 30 天的对象版本。
说明

需要版本控制

要使用此功能,mc cat 需要启用 存储桶版本控制。 请使用 mc version 在存储桶上启用版本控制。

查看 S3 对象的指定版本

使用 mc cat --version-id 返回对象的特定版本:

mc cat ALIAS/PATH --version-id VERSION
  • ALIAS 替换为 S3 兼容主机的 alias
  • PATH 替换为对象在 S3 兼容主机上的路径。
  • VERSION 替换为要返回的对象特定版本。
说明

需要版本控制

要使用此功能,mc cat 需要启用 存储桶版本控制。 请使用 mc version 在存储桶上启用版本控制。

下载特定分段

使用 mc cat --part-number 下载分段上传中的特定分段:

mc cat ALIAS/PATH --part-number=#
  • ALIAS 替换为 S3 兼容主机的 alias
  • PATH 替换为对象在 S3 兼容主机上的路径。
  • # 替换为要下载的分段编号整数值。 例如,要下载一个 16 段分段文件中的第 3 段,使用 --part-number=3

如果使用了 --offset--tail 标志,则不能使用 --part-number 标志。

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

79 - mc idp ldap accesskey ls

描述

mc idp ldap accesskey ls 用于显示 LDAP 访问密钥对列表。

mc idp ldap accesskey ls 也称为 mc idp ldap accesskey list

此命令适用于 AD/LDAP 用户在通过 MinIO 完成身份验证后创建的 访问密钥

使用 mc idp ldap accesskey create 命令创建 AD/LDAP 服务账户。

MinIO 支持使用 AssumeRoleWithLDAPIdentity 通过 Security Token Service 生成临时访问密钥。

以下示例返回 minio alias 上与已认证用户关联的访问密钥列表:

mc idp ldap accesskey ls minio/

如果已认证用户具有 admin:ListUsers 权限,则该示例命令会返回所有用户及其关联访问密钥的列表。

该命令的语法如下:

mc [GLOBALFLAGS] idp ldap accesskey ls           \
                                 ALIAS           \
                                 [--all]         \
                                 [--self]        \
                                 [--svcacc-only] \
                                 [--temp-only]   \
                                 [--users-only]  \
                                 [DN] ...
  • ALIAS 替换为已配置 AD/LDAP 集成的 MinIO 部署 alias

  • DN 替换为用户的 distinguished name 字符串。 你可以用空格分隔多个 distinguished name。

  • 方括号 [] 表示可选参数。

  • 同一行中的参数彼此相互依赖。

  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

已配置 AD/LDAP 的 MinIO 部署的 alias

例如:

mc idp ldap accesskey ls minio
--all

mc-cmd

Optional

说明

新增: mc

RELEASE.2024-07-31T15-58-33Z

列出所有 LDAP 用户的全部访问密钥。

--self

mc-cmd

Optional

说明

新增: mc

RELEASE.2024-07-31T15-58-33Z

列出当前已认证用户的访问密钥。

--svcacc-only

mc-cmd

Optional

仅输出服务账户访问密钥。

--temp-only 互斥。

--temp-only

mc-cmd

Optional

仅输出临时访问密钥。

--svcacc-only 互斥。

--users-only

mc-cmd

Optional

仅输出用户 distinguished name。

示例

列出所有访问密钥

要返回所有访问密钥列表,你必须先以 admin 用户完成认证。 认证完成后,以下命令会返回 minio 部署上的全部 AD/LDAP 访问密钥。

mc idp ldap accesskey ls minio
说明

说明

如果用户没有 admin:ListUsers 权限,该命令仅返回已认证用户的访问密钥列表。

列出用户 Distinguished Name

要返回某个部署的 DN 列表,你必须先以具有 admin:ListUsers 权限的用户完成认证。 认证完成后,以下命令会输出 minio 部署上的 AD/LDAP distinguished name。

mc idp ldap accesskey ls minio --users-only

列出临时访问密钥

要返回某个部署的全部临时访问密钥列表,你必须先以具有 admin:ListUsers 权限的用户完成认证。 认证完成后,以下命令会输出 distinguished name 及其关联临时访问密钥的列表。

mc idp ldap accesskey ls minio --temp-only

列出某个用户的访问密钥

以下命令返回 minio 部署上用户 bobfisher 的 AD/LDAP 访问密钥。

mc idp ldap accesskey list minio/ uid=bobfisher,dc=min,dc=io

列出多个用户的访问密钥

以下命令返回 minio 部署上用户 bobfishercody3 的 AD/LDAP 访问密钥。

mc idp ldap accesskey list minio/ uid=bobfisher,dc=min,dc=io uid=cody3,dc=min,dc=io

列出已认证用户的访问密钥

以下命令返回 minio 部署上当前已认证用户的 AD/LDAP 访问密钥。

mc idp ldap accesskey list minio/
说明

说明

如果已认证用户具有 admin:ListUsers 权限,则该命令会返回部署上所有用户及其访问密钥列表。

全局参数

此命令支持 全局标志 中的任意选项。

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

80 - mc idp ldap ls

说明

mc idp ldap ls 命令列出 AD/LDAP 提供方当前已有的配置集合。

mc idp ldap ls 也称为 mc idp ldap list

以下示例列出 myminio 部署的 AD/LDAP 配置设置。

mc idp ldap ls       \
            myminio

该命令的语法如下:

mc [GLOBALFLAGS] idp ldap ls     \
                          ALIAS
  • ALIAS 替换为 MinIO 部署的 alias,以列出 AD/LDAP 集成配置。

  • 方括号 [] 表示可选参数。

  • 同一行中的参数彼此相互依赖。

  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

要输出其当前 AD/LDAP 配置的 MinIO 部署的 alias

例如:

mc idp ldap ls myminio

全局标志

此命令支持 全局标志 中的任意选项。

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

81 - mc ilm rule ls

说明

变更: RELEASE.2022-12-24T15-21-38Z

mc ilm rule ls 替代了 mc ilm ls

说明

变更: RELEASE.2023-05-26T23-31-54Z

mc ilm rule ls --json 的输出在 updateAt 中包含策略修改时间。

语法

mc ilm rule ls 命令以表格格式汇总 MinIO 存储桶上配置的所有对象生命周期管理规则。

mc ilm rule list 命令与 mc ilm rule ls 的功能等效。

以下命令列出 myminio MinIO 部署中 mydata 存储桶的所有生命周期管理规则:

mc ilm rule ls myminio/mydata

命令输出可能类似如下:

┌───────────────────────────────────────────────────────────────────────────────┐
│ Transition for latest version (Transition)├────────┬─────────┬────────┬─────────────────────┬──────────────┬──────────────┤
│ ID     │ STATUS  │ PREFIX │ TAGS                │ DAYS TO TIER │ TIER         │
├────────┼─────────┼────────┼─────────────────────┼──────────────┼──────────────┤
│ rule-1 │ Enabled │ doc/   │ key1=val1&key2=val2 │            0 │ WARM-MINIO-1 │
└────────┴─────────┴────────┴─────────────────────┴──────────────┴──────────────┘
┌────────────────────────────────────────────────────────────────┐
│ Transition for older versions (NoncurrentVersionTransition)├────────┬─────────┬────────┬──────┬──────────────┬──────────────┤
│ ID     │ STATUS  │ PREFIX │ TAGS │ DAYS TO TIER │ TIER         │
├────────┼─────────┼────────┼──────┼──────────────┼──────────────┤
│ rule-2 │ Enabled │ logs/  │ -    │           10 │ WARM-MINIO-1 │
└────────┴─────────┴────────┴──────┴──────────────┴──────────────┘
┌────────────────────────────────────────────────────────────────────────────────────────┐
│ Expiration for latest version (Expiration)├────────┬─────────┬────────┬─────────────────────┬────────────────┬─────────────────────┤
│ ID     │ STATUS  │ PREFIX │ TAGS                │ DAYS TO EXPIRE │ EXPIRE DELETEMARKER │
├────────┼─────────┼────────┼─────────────────────┼────────────────┼─────────────────────┤
│ rule-1 │ Enabled │ doc/   │ key1=val1&key2=val2 │             30false└────────┴─────────┴────────┴─────────────────────┴────────────────┴─────────────────────┘
┌──────────────────────────────────────────────────────────────────────────────────┐
│ Expiration for older versions (NoncurrentVersionExpiration)├────────┬─────────┬────────┬─────────────────────┬────────────────┬───────────────┤
│ ID     │ STATUS  │ PREFIX │ TAGS                │ DAYS TO EXPIRE │ KEEP VERSIONS │
├────────┼─────────┼────────┼─────────────────────┼────────────────┼───────────────┤
│ rule-1 │ Enabled │ doc/   │ key1=val1&key2=val2 │             150│ rule-2 │ Enabled │ logs/  │ -                   │              13└────────┴─────────┴────────┴─────────────────────┴────────────────┴───────────────┘

mc ilm rule ls 命令语法如下:

mc [GLOBALFLAGS] ilm rule ls     \
                 [--expiry]      \
                 [--transition]
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

要列出对象生命周期管理规则的 MinIO 部署中,存储桶对应的 alias 和完整路径。 例如:

mc ilm rule ls myminio/mydata
--expiry

mc-cmd

Optional

mc ilm rule ls 仅返回与生命周期规则过期相关的字段。

--transition 互斥。

--transition

mc-cmd

Optional

mc ilm rule ls 仅返回与生命周期规则转移相关的字段。

--expiry 互斥。

全局标志

此命令支持 全局标志 中的任意选项。

示例

列出存储桶生命周期管理规则

使用 mc ilm rule ls 列出存储桶的生命周期管理规则:

mc ilm rule ls ALIAS/PATH
  • ALIAS 替换为 S3 兼容主机的 alias
  • PATH 替换为 S3 兼容主机上该存储桶的路径。

显示策略修改时间

使用带有 --jsonmc ilm rule ls 显示存储桶策略上次更新时间。

mc ilm rule ls ALIAS/PATH --json
  • ALIAS 替换为 S3 兼容主机的 alias
  • PATH 替换为 S3 兼容主机上该存储桶的路径。

JSON 输出中的 updateAt 属性包含该策略更新的日期和时间。

输出类似如下:

{
 "status": "success",
 "target": "myminio/mybucket",
 "config": {
  "Rules": [
   {
    "Expiration": {
     "Days": 30
    },
    "ID": "ci1o2mg0sko6f1r3krv0",
    "Status": "Enabled"
   }
  ]
 },
 "updatedAt": "2023-06-09T19:45:30Z"
}

所需权限

有关列出规则所需的权限,请参阅父命令中的 required permissions

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

82 - mc ilm tier rm

描述

mc ilm tier rm 命令用于移除尚未用于转换任何对象的远程层。

mc ilm tier remove 命令与 mc ilm tier rm 具有等效功能。

说明

说明

一旦某个层已经转换过对象,则无法将其移除。

所需权限

MinIO 要求具备以下权限,且权限范围限定为你要创建生命周期管理规则的一个或多个存储桶。

MinIO 还要求在集群上具备以下管理权限,该集群用于为对象转换生命周期管理规则创建远程层:

例如,以下策略提供了在集群中任意存储桶上配置对象转换生命周期管理规则的权限:

{
   "Version": "2012-10-17",
   "Statement": [
      {
            "Action": [
               "admin:SetTier",
               "admin:ListTier"
            ],
            "Effect": "Allow",
            "Sid": "EnableRemoteTierManagement"
      },
      {
            "Action": [
               "s3:PutLifecycleConfiguration",
               "s3:GetLifecycleConfiguration"
            ],
            "Resource": [
                        "arn:aws:s3:::*"
            ],
            "Effect": "Allow",
            "Sid": "EnableLifecycleManagementRules"
      }
   ]
}

语法

该命令具有以下语法:

以下示例在 myminio 部署上移除名为 WARM-TIER 的现有远程层。 没有对象被转换到 WARM-TIER 层。

 mc ilm tier rm myminio WARM-TIER

该命令具有以下语法:

mc ilm tier info TARGET TIER_NAME

参数

该命令接受以下参数:

TARGET

mc-cmd

Required

目标层所在的已配置 MinIO 部署的 alias

TIER_NAME

mc-cmd

Required

要移除的现有远程层名称。

必须 使用全大写指定该层,例如 WARM_TIER

不能有任何对象已转换到该层。

全局标志

此命令支持 全局标志 中的任意选项。

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

所需权限

有关移除层所需的权限,请参阅父命令中的 required permissions

83 - mc replicate resync

语法

mc replicate resync 命令会将指定 MinIO 存储桶中的所有对象, 重新同步到远端 replication 目标。

此命令 要求 先使用 mc replicate add 命令配置远端存储桶目标。 执行 mc replicate resync 时,必须指定由此生成的远端 ARN。

此命令支持使用 active-active 复制的远端作为“备份”来源来重建 MinIO 部署。 有关 active-active 复制的更多信息,请参阅以下教程:

以下命令将 myminio MinIO 部署中 mydata 存储桶的内容, 重新同步到与指定 --remote-bucket 关联的远端 MinIO 部署:

mc replicate resync start \
   --remote-bucket "arn:minio:replication::d3c086c7-1d64-40c2-954b-fe8222907033:mydata" \
   myminio/mydata

命令语法如下:

mc [GLOBALFLAGS] replicate resync start|status  \
                 --remote-bucket "string"       \
                 [--older-than "string"]        \
                 ALIAS
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

MinIO 部署的 alias,以及 MinIO 用作复制源的存储桶或存储桶前缀的完整路径。 例如,以下命令使用与 primary 别名关联的 MinIO 部署上的 data 存储桶启动复制。

mc replicate resync start primary/data --remote-bucket "ARN"
start

mc-cmd

Required

使用指定的 bucket 作为源, 并使用 --remote-bucket 作为远端目标, 启动重新同步过程。

mc replicate resync status 互斥。

status

mc-cmd

Required

返回指定 bucket 到所有远端目标的重新同步状态。

包含 --remote-bucket 参数可将状态输出过滤为仅显示指定远端目标。

--remote-bucket

mc-cmd

Required

指定目标部署和存储桶的 ARN。

可通过 mc replicate ls 配合 --json 选项获取 ARN。 rule.Destination.Bucket 字段包含任意给定复制规则的 ARN。

older-than

mc-cmd

Optional

指定一个以天为单位的时长,MinIO 仅会重新同步早于该时长的对象。

仅可与 mc replicate resync start 一起使用。

全局标志

此命令支持 全局标志 中的任意选项。

示例

从源存储桶重新同步远端复制目标

以下 mc replicate resync 命令会将指定源存储桶中的所有对象重新同步到远端目标, 不考虑其复制状态:

mc replicate resync start --remote-bucket "arn:minio:replication::UUID:data" primary/data
  • primary/data 替换为 ALIAS 对应的完整存储桶路径,用于创建复制配置。
  • --remote-bucket 的值替换为远端目标的 ARN。 使用 mc replicate ls 列出所有已配置的远端复制目标。

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

84 - mc support profile

说明

需要完成 SUBNET 注册

mc support 命令面向已在 MinIO SUBNET 注册的 MinIO 部署设计,以确保诊断和 性能测试获得最佳结果。 未注册 SUBNET 的部署无法使用 mc support 命令。

描述

mc support profile 为你的部署运行系统性能剖析。 剖析结果可帮助了解给定节点上运行的 MinIO 服务端进程状态。

生成的报告供 MinIO Engineering 使用。 你可以将报告上传到 MinIO SUBNET。 若由你自己或第三方独立使用这些剖析结果进行诊断和修复,风险自担。

说明

需要完成 SUBNET 注册

mc support 命令面向已在 MinIO SUBNET 注册的 MinIO 部署设计,以确保诊断和 性能测试获得最佳结果。 未注册 SUBNET 的部署无法使用 mc support 命令。

示例

获取 CPU 剖析

此命令从别名为 minio1 的 MinIO 部署中获取 CPU 剖析数据。 剖析按默认时长运行 10 秒。

mc support profile --type cpu minio1/

并发获取 CPU、内存和 block 剖析

此命令从别名 minio2 获取 CPU、内存和 block 使用情况的剖析数据。 剖析按默认时长运行 10 秒。

mc support profile --type cpu,mem,block minio2/

并发获取 CPU、内存和 block 剖析(持续 10 分钟)

此命令从别名 minio3 获取 CPU、内存和 block 的剖析数据。 剖析运行 10 分钟(600 秒)。

mc support profile --type cpu,mem,block --duration 600 minio3/

语法

mc support profile 命令语法如下:

mc [GLOBALFLAGS] support profile       \
                         COMMAND       \
                         [--type]      \
                         [--airgap]    \
                         [--duration]  \
                         ALIAS

参数

--duration

mc-cmd

Optional

按指定时长运行剖析,单位为秒。

使用 --type <value>,其中 <value> 为剖析运行的秒数。

如果未指定,命令将收集 10 秒的数据。

--type

mc-cmd

Optional

指定要收集数据的剖析类型。

使用 --type <value>,其中 <value> 为一个或多个以逗号分隔的数据类型。

有效类型包括:

  • cpu
  • cpuio
  • mem
  • block
  • mutex
  • trace
  • threads
  • goroutines

如果未指定,命令将收集 CPU、memory、block、mutex、threads 和 goroutines 的数据。

警告

重要

除非 MinIO Support 明确要求,否则不要使用 cpuiotrace 数据类型。 这些剖析会消耗大量资源,在缺乏指导时使用可能导致集群性能下降。

--airgap

mc-cmd

Optional

在无法网络访问 SUBNET 的环境中使用(例如 airgapped、firewalled 或类似配置)。

如果部署是 airgapped,但你运行 minio client 的本地设备具有网络访问能力,则无需使用 --airgap 标志。

ALIAS

mc-cmd

Required

MinIO 部署的 alias

全局标志

此命令支持 全局标志 中的任意选项。

85 - mc support top rpc

说明

需要完成 SUBNET 注册

mc support 命令面向已在 MinIO SUBNET 注册的 MinIO 部署设计,以确保诊断和 性能测试获得最佳结果。 未注册 SUBNET 的部署无法使用 mc support 命令。

语法

mc support top rpc 命令显示远程过程调用(RPC)的指标。

以下命令显示 alias myminio 部署当前的远程过程调用指标。

mc support top rpc myminio/

输出会返回如下信息:server、连接数、ping 时延、距离上次 ping(pong)的时间、重连次数、string in、string out、messages in 和 messages out。

输出类似如下:

λ mc support top rpc myminio
      SERVER            CONCTD  PING     PONG   OUT.Q   RECONNS STR.IN  STR.OUT MSG.IN  MSG.OUT
 To  127.0.0.1:9002       5     0.7ms   1s ago    0        0     ->0      0->    3269    3212
From 127.0.0.1:9002       5     1.1ms   1s ago    0        0     ->0      0->    3213    3269
 To  127.0.0.1:9003       5     0.6ms   1s ago    0        0     ->0      0->    6001    6076
From 127.0.0.1:9003       5     0.6ms   1s ago    0        0     ->0      0->    6077    6001
 To  127.0.0.1:9004       5     0.6ms   1s ago    0        0     ->0      0->    3243    3160
From 127.0.0.1:9004       5     0.4ms   1s ago    0        0     ->0      0->    3161    3243
 To  127.0.0.1:9005       5     0.6ms   1s ago    0        0     ->0      0->    3150    3094
From 127.0.0.1:9005       5     0.3ms   1s ago    0        0     ->0      0->    3095    3150
 To  127.0.0.1:9006       5     0.3ms   1s ago    0        0     ->0      0->    3185    3221
From 127.0.0.1:9006       5     0.6ms   1s ago    0        0     ->0      0->    3222    3185

该命令具有以下语法:

mc [GLOBALFLAGS] support top rpc                 \
                             [--airgap]          \
                             [--in value]        \
                             [--interval value]  \
                             [-n value]          \
                             [--nodes value]     \
                             TARGET
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

TARGET

mc-cmd

Required

命令应运行的 aliasprefix 的完整路径。

--airgap

mc-cmd

Optional

用于无法通过网络访问 SUBNET 的环境。

--in

mc-cmd

Optional

回放先前保存的 JSON 文件。 指定要回放的 JSON 文件路径,例如由此前运行该命令生成的文件。

--interval

mc-cmd

Optional

指标请求之间的间隔时间(秒)。

默认情况下,命令每秒请求一次指标。

-n

mc-cmd

Optional

在退出前要运行的请求次数。 使用 0 表示无限运行。

如果未指定,命令不会自动退出。

--nodes

mc-cmd

Optional

以逗号分隔的节点列表,用于指定从哪些节点收集指标。

全局标志

此命令支持 全局标志 中的任意选项。

86 - mc anonymous set-json

语法

mc anonymous set-json 命令使用 IAM JSON 策略文档,为存储桶设置匿名(即未认证或公开)访问策略

配置了匿名策略的存储桶允许客户端在无需 authentication 的情况下访问存储桶内容, 并执行与指定策略一致的操作。

以下命令将 JSON 格式的匿名策略应用到 myminio MinIO 部署上的 mydata 存储桶:

mc anonymous set-json ~/mydata-anonymous.json myminio/mydata

命令语法如下:

mc [GLOBALFLAGS] set-json POLICY ALIAS
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

POLICY

mc-cmd

必需 要分配给指定 ALIAS 的 JSON 格式策略文件路径。

ALIAS

mc-cmd

必需 存储桶或存储桶前缀的完整路径,命令会将指定的 POLICY 应用到该路径。

指定 MinIO 或其他 S3 兼容服务的 alias以及 存储桶或存储桶前缀的完整路径。例如:

mc anonymous set-json public play/mybucket

全局标志

此命令支持 全局标志 中的任意选项。

示例

为存储桶设置匿名策略

使用 mc anonymous set-json 为存储桶设置匿名策略:

mc anonymous set-json POLICY ALIAS/PATH
  • POLICY 替换为受支持的 POLICY
  • ALIAS 替换为已配置 S3 兼容主机的 alias
  • PATH 替换为目标存储桶。

移除存储桶的匿名策略

使用 mc anonymous set 清除存储桶的匿名策略:

mc anonymous set none ALIAS/PATH
  • ALIAS 替换为已配置 S3 兼容主机的 alias
  • PATH 替换为目标存储桶。

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

87 - mc batch status

说明

变更: MinIO

RELEASE.2022-10-09T21-10-59Z or later

语法

mc batch status 命令会输出 MinIO 服务器上作业事件的汇总信息。

说明

变更: mc

RELEASE.2024-07-03T20-17-25Z

Batch status 会显示活动且正在进行的作业,或前 3(三)天内已完成的任意批处理作业的汇总信息。

以下命令会输出 myminio alias 上当前正在运行、JobID 为 KwSysDpxcBU9FNhGkn2dCf 的指定作业状态。

mc batch status myminio "KwSysDpxcBU9FNhGkn2dCf"

该命令的语法如下:

mc [GLOBALFLAGS] batch list TARGET           \
                            ["JOBID"]
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

TARGET

mc-cmd

Required

要显示批处理作业状态的 alias

JOBID

mc-cmd

Optional

要汇总的作业的唯一标识符。 要查找作业 ID,请使用 mc batch list

如果未指定,则该命令返回当前活动的批处理作业的汇总信息。

全局标志

此命令支持 全局标志 中的任意选项。

示例

汇总活动复制作业的事件

以下命令会为 alias myminio 对应部署上的活动作业提供实时汇总:

mc batch status myminio "KwSysDpxcBU9FNhGkn2dCf"
  • myminio 替换为应运行该作业的 MinIO 部署的 alias

上述命令的输出如下所示:

●∙∙
JobType:        replicate
Objects:        28766
Versions:       28766
FailedObjects:  0
Transferred:    406 MiB
Elapsed:        2m14.227222868s
CurrObjName:    share/doc/xml-core/examples/foo.xmlcatalogs

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

88 - mc cp

语法

mc cp 命令用于在 MinIO 部署与本地文件系统之间复制对象, 其中源端可以是 MinIO 本地文件系统。

你也可以将 mc cp 用于本地文件系统,达到与 cp 命令行工具 类似的效果。

说明

说明

mc cp 仅复制对象的最新版本或指定版本,不包含任何版本信息或修改日期。 要复制所有版本、版本信息及相关元数据,请使用 mc replicate addmc admin replicate

以下命令将文件从本地文件系统目录复制到 myminio MinIO 部署中的 mydata 存储桶:

mc cp --recursive ~/mydata/ myminio/mydata/

mc cp 命令的语法如下:

mc [GLOBALFLAGS] cp                                                        \
                 [--attr "string"]                                         \
                 [--disable-multipart]                                     \
                 [--enc-kms "string"]                                      \
                 [--enc-s3 "string"]                                       \
                 [--enc-c "string"]                                        \
                 [--legal-hold "on"]                                       \
                 [--limit-download string]                                 \
                 [--limit-upload string]                                   \
                 [--md5]                                                   \
                 [--newer-than "string"]                                   \
                 [--older-than "string"]                                   \
                 [--preserve]                                              \
                 [--recursive]                                             \
                 [--retention-mode "string" --retention-duration "string"] \
                 [--rewind "string"]                                       \
                 [--storage-class "string"]                                \
                 [--tags "string"]                                         \
                 [--version-id "string"]                                   \
                 [--zip]                                                   \
                 SOURCE [SOURCE ...]                                       \
                 TARGET
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

SOURCE

mc-cmd

Required

要复制的对象。

如需从 MinIO 复制对象,请指定该对象的 alias 和完整路径 (例如存储桶和对象路径)。 例如:

mc cp play/mybucket/object.txt ~/mydata/object.txt

指定多个 SOURCE 路径可将多个对象复制到指定的 TARGETmc cp 将最后一个指定的 alias 或文件系统路径视为 TARGET。 例如:

mc cp ~/data/object.txt myminio/mydata/object.txt play/mydata/

如需从本地文件系统复制对象,请指定该对象的完整路径。 例如:

mc cp ~/mydata/object.txt play/mybucket/object.txt

如果在 SOURCE 中指定的是目录或存储桶, 还必须指定 --recursive 以递归复制该目录或存储桶中的内容。 如果省略 --recursive 参数,cp 仅复制指定目录或存储桶顶层中的对象。

TARGET

mc-cmd

Required

mc cp 复制对象的目标完整路径。

如需将对象复制到 MinIO, 请指定该对象的 alias 和完整路径 (例如存储桶和对象路径)。例如:

mc cp ~/mydata/object.txt play/mybucket/object.txt

如需将对象复制到本地文件系统,请指定该对象的完整 路径。例如:

mc cp play/mybucket/object.txt ~/mydata/object.txt
--attr

mc-cmd

Optional

为对象添加自定义元数据。 以 KEY=VALUE\; 格式指定键值对。 例如,--attr key1=value1\;key2=value2\;key3=value3

--checksum

mc-cmd

Optional

说明

新增: RELEASE.2024-10-02T08-27-28Z

为上传对象添加校验和。

有效值包括: - MD5 - CRC32 - CRC32C - SHA1 - SHA256

该标志依赖服务端 trailing headers,适用于 AWS 或 MinIO 目标。

--disable-multipart

mc-cmd

Optional

为本次复制会话禁用分片上传。

--enc-kms

mc-cmd

使用客户端管理的密钥,通过服务端 SSE-KMS 加密 对对象进行加密或解密。

该参数接受格式为 KEY=VALUE 的键值对。

KEY

对象的完整路径,格式为 alias/bucket/path/object.ext

你也可以只指定顶层路径,以便对该路径下的所有操作使用同一个加密密钥。

VALUE

指定外部 KMS 上已有的数据密钥。

关于如何创建数据密钥,请参见 mc admin kms key create 参考文档。

例如:

--enc-kms "myminio/mybucket/prefix/object.obj=mybucketencryptionkey"

你可以通过重复该参数来指定多个加密密钥。

也可以指定某个前缀路径,对该路径下所有匹配对象应用加密:

--enc-kms "myminio/mybucket/prefix/=mybucketencryptionkey"
--enc-s3

mc-cmd

Optional

使用 KMS 管理的密钥,通过服务端 SSE-S3 加密 对对象进行加密或解密。 指定对象的完整路径,格式为 alias/bucket/prefix/object

例如:

--enc-s3 "myminio/mybucket/prefix/object.obj"

你可以多次指定该参数,以表示不同的待加密对象:

--enc-s3 "myminio/mybucket/foo/fooobject.obj" --enc-s3 "myminio/mybucket/bar/barobject.obj"

也可以指定某个前缀路径,对该路径下所有匹配对象应用加密:

--enc-s3 "myminio/mybucket/foo"
--enc-c

mc-cmd

Optional

使用客户端管理的密钥,通过服务端 SSE-C 加密 对对象进行加密或解密。

该参数接受格式为 KEY=VALUE 的键值对。

KEY

对象的完整路径,格式为 alias/bucket/path/object.ext

你也可以只指定顶层路径,以便对该路径下的所有操作使用同一个加密密钥。

VALUE

指定用于 SSE-C 加密的密钥,可以是 32 字节 RawBase64 编码密钥, 也可以是 64 字节十六进制编码密钥。

Raw Base64 编码 不接受= 填充的密钥。 请去掉填充,或使用支持 RAW 格式的 Base64 编码器。

  • KEY - 对象的完整路径,格式为 alias/bucket/path/object
  • VALUE - 用于加密对象的 32 字节 RAW Base64 编码数据密钥。

例如:

# RawBase64-Encoded string "mybucket32byteencryptionkeyssec"
--enc-c "myminio/mybucket/prefix/object.obj=bXlidWNrZXQzMmJ5dGVlbmNyeXB0aW9ua2V5c3NlYwo"

你可以通过重复该参数来指定多个加密密钥。

也可以指定某个前缀路径,对该路径下所有匹配对象应用加密:

--enc-c "myminio/mybucket/prefix/=bXlidWNrZXQzMmJ5dGVlbmNyeXB0aW9ua2V5c3NlYwo"
说明

说明

MinIO 强烈不建议在生产负载中使用 SSE-C 加密。 请改用 --enc-kms 参数启用 SSE-KMS,或使用 --enc-s3 参数启用 SSE-S3。

mc-cmd

Optional

为复制后的对象启用无限期的 legal hold 对象锁定。

指定 on

--limit-download

mc-cmd

Optional

将客户端侧下载速率限制为不超过指定值,单位可以是 KiB/s、MiB/s 或 GiB/s。 这只影响下载到运行 MinIO Client 的本地设备的速度。 有效单位包括:

  • B 表示字节
  • K 表示千字节
  • M 表示兆字节
  • G 表示吉字节
  • T 表示太字节
  • Ki 表示二进制千字节
  • Mi 表示二进制兆字节
  • Gi 表示二进制吉字节
  • Ti 表示二进制太字节

例如,如需将下载速率限制为不超过 1 GiB/s,请使用以下命令:

--limit-download 1G

如果未指定,MinIO 将使用不受限制的下载速率。

--limit-upload

mc-cmd

Optional

将客户端侧上传速率限制为不超过指定值,单位可以是 KiB/s、MiB/s 或 GiB/s。 这只影响从运行 MinIO Client 的本地设备发起的上传速度。 有效单位包括:

  • B 表示字节
  • K 表示千字节
  • M 表示兆字节
  • G 表示吉字节
  • T 表示太字节
  • Ki 表示二进制千字节
  • Mi 表示二进制兆字节
  • Gi 表示二进制吉字节
  • Ti 表示二进制太字节

例如,如需将上传速率限制为不超过 1 GiB/s,请使用以下命令:

--limit-upload 1G

如果未指定,MinIO 将使用不受限制的上传速率。

--md5

mc-cmd

Optional

说明

变更: RELEASE.2024-10-02T08-27-28Z

已由 --checksum 标志替代。

强制所有上传计算 MD5 校验和。

--newer-than

mc-cmd

Optional

复制比指定天数更新的对象。 以 #d#hh#mm#ss 格式指定字符串。 例如:--older-than 1d2hh3mm4ss

默认为 0(所有对象)。

--older-than

mc-cmd

Optional

复制早于指定时间限制的对象。 以 #d#hh#mm#ss 格式指定字符串。 例如:--older-than 1d2hh3mm4ss

默认为 0(所有对象)。

--preserve, a

mc-cmd

Optional

TARGET 存储桶中保留来自 SOURCE 目录、存储桶和对象的文件系统属性及存储桶策略规则。

--recursive, r

mc-cmd

Optional

将每个 SOURCE 存储桶或目录中的内容递归复制到 TARGET 存储桶。

--retention-duration

mc-cmd

Optional

要应用于复制对象的 WORM retention mode 持续时间。

#d#hh#mm#ss 格式的字符串指定持续时间。 例如:--retention-duration "1d2hh3mm4ss"

需要同时指定 --retention-mode

--retention-mode

mc-cmd

Optional

在复制对象上启用 object locking mode。 支持以下取值:

  • GOVERNANCE
  • COMPLIANCE

需要同时指定 --retention-duration

--rewind

mc-cmd

Optional

指示 mc cp 仅对指定时间点存在的对象版本执行操作。

  • 如需回溯到过去的特定日期,请将该日期指定为 ISO8601 格式的时间戳。 例如:--rewind "2020.03.24T10:00"
  • 如需按时间长度回溯,请将该时长指定为 #d#hh#mm#ss 格式的字符串。 例如:--rewind "1d2hh3mm4ss"

--rewind 要求指定的 SOURCE 指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用 mc version 启用或禁用存储桶版本控制。

--storage-class, sc

mc-cmd

Optional

TARGET 上的新对象设置存储类。

有关 S3 存储类的更多信息,请参见 https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html

--tags

mc-cmd

Optional

为复制后的对象应用一个或多个标签。

KEY1=VALUE1&KEY2=VALUE2 形式指定由与号分隔的键值对, 其中每一对代表分配给对象的一个标签。

--version-id, vid

mc-cmd

Optional

指示 mc cp 仅对指定的对象版本执行操作。

--version-id 要求指定的 SOURCE 指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用 mc version 启用或禁用存储桶版本控制。

--zip

mc-cmd

Optional

在复制期间,从 .zip 归档中提取文件。 仅当源归档文件位于 MinIO 部署中时生效。

全局标志

此命令支持 全局标志 中的任意选项。

示例

将对象复制到 S3

使用 mc cp 将对象复制到 S3 兼容主机:

mc cp SOURCE ALIAS/PATH
  • SOURCE 替换为对象的文件系统路径。
  • ALIAS 替换为已配置的 S3 兼容主机的 alias
  • PATH 替换为 S3 兼容主机上的对象路径。 你可以指定不同的对象名称,以便在复制时“重命名”对象。
mc cp SRCALIAS/SRCPATH TGTALIAS/TGTPATH
  • SRCALIAS 替换为源 S3 兼容主机的 alias
  • SRCPATH 替换为 S3 兼容主机上对象的路径。
  • TGTALIAS 替换为目标 S3 兼容主机的 alias
  • TGTPATH 替换为目标 S3 兼容主机上对象的路径。 省略对象名称可使用 SRCPATH 的对象名称。

递归复制对象到 S3

使用 mc cp --recursive 将对象递归复制到 S3 兼容主机:

mc cp --recursive SOURCE ALIAS/PATH
  • SOURCE 替换为包含文件的目录路径。
  • ALIAS 替换为已配置的 S3 兼容主机的 alias
  • PATH 替换为 S3 兼容主机上的对象路径。 mc cp 在目标主机创建对象时会使用 SOURCE 的文件名。
mc cp --recursive SRCALIAS/SRCPATH TGTALIAS/TGTPATH
  • SRCALIAS 替换为源 S3 兼容主机的 alias
  • SRCPATH 替换为源 S3 兼容主机上的 存储桶或存储桶前缀路径。
  • TGTALIAS 替换为目标 S3 兼容主机的 alias
  • TGTPATH 替换为目标 S3 兼容主机上的对象路径。 mc cp 在目标主机创建对象时会使用 SRCPATH 的对象名称。

复制对象的时间点版本

使用 mc cp --rewind 复制对象在某个特定时间点的状态。 该命令仅适用于 S3 到 S3 复制。

mc cp --rewind DURATION SRCALIAS/SRCPATH TGTALIAS/TGTPATH
  • DURATION 替换为要回溯复制对象的过去时间点。 例如,指定 30d 可复制当前日期前 30 天的对象版本。
  • SRCALIAS 替换为源 S3 兼容主机的 alias
  • SRCPATH 替换为源 S3 兼容主机上对象的路径。
  • TGTALIAS 替换为目标 S3 兼容主机的 alias
  • TGTPATH 替换为目标 S3 兼容主机上对象的路径。 省略对象名称可使用 SRCPATH 的对象名称。
说明

需要版本控制

要使用此功能,mc cp 需要启用 存储桶版本控制。 请使用 mc version 在存储桶上启用版本控制。

复制对象的特定版本

使用 mc cp --version-id 复制对象的特定版本。 该命令仅适用于 S3 到 S3 复制。

mc cp --version-id VERSION SRCALIAS/SRCPATH TGTALIAS/TGTPATH
  • VERSION 替换为要复制的对象版本。
  • SRCALIAS 替换为源 S3 兼容主机的 alias
  • SRCPATH 替换为源 S3 兼容主机上对象的路径。
  • TGTALIAS 替换为目标 S3 兼容主机的 alias
  • TGTPATH 替换为目标 S3 兼容主机上对象的路径。 省略对象名称可使用 SRCPATH 的对象名称。
说明

需要版本控制

要使用此功能,mc cp 需要启用 存储桶版本控制。 请使用 mc version 在存储桶上启用版本控制。

添加 content-type

使用 mc cp --attr 添加 content-type 值。 该命令仅适用于 S3 到 S3 复制。

mc cp --attr="content-type=CONTENT-TYPE" SRCALIAS/SRCPATH TGTALIAS/TGTPATH
  • CONTENT-TYPE 替换为所需的 content type(也称为 media type)。
  • SRCALIAS 替换为源 S3 兼容主机的 alias
  • SRCPATH 替换为源 S3 兼容主机上对象的路径。
  • TGTALIAS 替换为目标 S3 兼容主机的 alias
  • TGTPATH 替换为目标 S3 兼容主机上对象的路径。 省略对象名称可使用 SRCPATH 的对象名称。

以下示例将 content-type 设置为 application/json

 mc cp data.ndjson --attr="content-type=application/json" myminio/mybucket

行为

mc cp 使用 MD5SUM 校验和验证所有到对象存储的复制操作。

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

89 - mc idp ldap accesskey rm

描述

mc idp ldap accesskey rm 从本地服务器中删除指定的访问密钥。

mc idp ldap accesskey rm 也称为 mc idp ldap accesskey remove

此命令适用于 AD/LDAP 用户在通过 MinIO 完成身份验证后创建的 访问密钥

使用 mc idp ldap accesskey create 命令创建 AD/LDAP 服务账户。

MinIO 支持使用 AssumeRoleWithLDAPIdentity 通过 Security Token Service 生成临时访问密钥。

以下示例从 minio 部署中删除访问密钥 mykey

mc idp ldap accesskey rm minio/ mykey

该命令使用以下语法:

mc [GLOBALFLAGS] idp ldap accesskey rm              \
                                 ALIAS              \
                                 KEY
  • ALIAS 替换为已配置 AD/LDAP 集成的 MinIO 部署的 alias

  • KEY 替换为要删除的访问密钥。

  • 方括号 [] 表示可选参数。

  • 同一行中的参数彼此相互依赖。

  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

已配置 AD/LDAP 的 MinIO 部署的 alias

例如:

mc idp ldap accesskey ls minio
KEY

mc-cmd

Required

要删除的已配置访问密钥。

示例

minio 部署中删除访问密钥 mykey

mc idp ldap accesskey rm minio/ mykey

全局标志

此命令支持 全局标志 中的任意选项。

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

90 - mc idp ldap rm

说明

mc idp ldap rm 命令移除 AD/LDAP 提供方的现有配置。

mc idp ldap rm 也称为 mc idp ldap remove

以下示例移除 myminio 部署的 AD/LDAP 提供方设置。

mc idp ldap rm       \
            myminio

该命令的语法如下:

mc [GLOBALFLAGS] idp ldap rm     \
                          ALIAS
  • ALIAS 替换为 MinIO 部署的 alias,以移除 AD/LDAP 集成。

  • 方括号 [] 表示可选参数。

  • 同一行中的参数彼此相互依赖。

  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

要移除其当前 AD/LDAP 配置的 MinIO 部署的 alias

例如:

mc idp ldap rm myminio

全局标志

此命令支持 全局标志 中的任意选项。

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

91 - mc ilm rule rm

说明

变更: RELEASE.2022-12-24T15-21-38Z

mc ilm rule rm 替代 mc ilm rm

语法

mc ilm rule rm 命令用于从 MinIO 存储桶中删除一条对象生命周期管理规则。

以下命令从 myminio MinIO 部署的 mydata 存储桶中删除一条生命周期管理规则:

mc ilm rule rm --id "bgrt1ghju" myminio/mydata

该命令的语法如下:

mc [GLOBALFLAGS] ilm rule rm                         \
                     --id "string" | (--all --force) \
                     ALIAS                           \
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

要删除对象生命周期管理规则的 MinIO 部署上存储桶的 alias 和完整路径。 例如:

mc ilm rule rm myminio/mydata
--all

mc-cmd

Optional

删除存储桶中的所有规则。 需要同时包含 --force

--id 互斥。

--force

mc-cmd

Optional

指定 --all 时必需。

--id

mc-cmd

Optional

规则的唯一 ID。 使用 mc ilm rule ls 列出存储桶规则,并获取要删除规则的 id

mc ilm rule rm --all 互斥。

全局标志

此命令支持 全局标志 中的任意选项。

示例

删除存储桶生命周期管理规则

使用 mc ilm rule rm 删除存储桶生命周期管理规则:

mc ilm rule rm --id "RULE" ALIAS/PATH
  • RULE 替换为生命周期管理规则的唯一标识符。 使用 mc ilm rule ls 查找要使用的 ID。
  • ALIAS 替换为 S3 兼容主机的 alias
  • PATH 替换为 S3 兼容主机上存储桶的路径。

所需权限

有关删除规则所需的权限,请参阅父命令中的 required permissions

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

92 - mc ilm tier update

说明

变更: RELEASE.2022-12-24T15-21-38Z

mc ilm tier update 替代 mc admin tier edit

描述

mc ilm tier update 命令用于修改已配置的远程层。

说明

仅在 MinIO 部署上使用 mc admin

MinIO 不支持将 mc admin 命令用于其他 S3 兼容服务, 无论这些服务声称与 MinIO 部署具有何种兼容性。

支持的 S3 服务

mc ilm tier 支持以下兼容 S3 的服务作为对象分层的远程目标:

  • MinIO
  • Amazon S3
  • Google Cloud Storage
  • Azure Blob Storage

所需权限

MinIO 要求在你创建生命周期管理规则的存储桶范围内,具备以下权限。

MinIO 还要求在集群上具备以下管理权限,以便为对象过渡生命周期管理规则创建远程层:

例如,以下策略授予在集群中任意存储桶上配置对象过渡生命周期管理规则的权限:

{
   "Version": "2012-10-17",
   "Statement": [
      {
            "Action": [
               "admin:SetTier",
               "admin:ListTier"
            ],
            "Effect": "Allow",
            "Sid": "EnableRemoteTierManagement"
      },
      {
            "Action": [
               "s3:PutLifecycleConfiguration",
               "s3:GetLifecycleConfiguration"
            ],
            "Resource": [
                        "arn:aws:s3:::*"
            ],
            "Effect": "Allow",
            "Sid": "EnableLifecycleManagementRules"
      }
   ]
}

过渡权限

对象过渡生命周期管理规则在远程存储层上需要额外权限。具体而言,MinIO 要求远程层凭证提供读取、写入、列出和删除权限。

例如,如果远程存储层实现基于 AWS IAM 策略的访问控制,则以下策略提供对象在远程层之间迁入和迁出所需的权限:

{
   "Version": "2012-10-17",
   "Statement": [
      {
            "Action": [
               "s3:ListBucket"
            ],
            "Effect": "Allow",
            "Resource": [
               "arn:aws:s3:::MyDestinationBucket"
            ],
            "Sid": ""
      },
      {
            "Action": [
               "s3:GetObject",
               "s3:PutObject",
               "s3:DeleteObject"
            ],
            "Effect": "Allow",
            "Resource": [
               "arn:aws:s3:::MyDestinationBucket/*"
            ],
            "Sid": ""
      }
   ]
}

请修改 Resource 为 MinIO 执行对象分层所使用的存储桶。

关于配置用户和权限以支持 MinIO 分层的更完整信息,请参阅受支持分层目标的文档:

语法

以下示例会更新 myminio 部署上名为 S3TIER 的现有远程层凭证。

 mc ilm tier update myminio S3TIER --access-key ACCESS_KEY --secret-key SECRET_KEY

运行此命令后,myminio 部署上的生命周期管理规则会使用该层的新凭证将对象过渡到远程位置。 命令中未修改的选项会保留其现有配置。

该命令的语法如下:

mc ilm tier update TARGET                         \
                   TIER_NAME                      \
                   [--account-key value]          \
                   [--access-key value]           \
                   [--az-sp-tenant-id value]      \
                   [--az-sp-client-id value]      \
                   [--az-sp-client-secret value]  \
                   [--secret-key value]           \
                   [--use-aws-role]               \
                   [--credentials-file value]
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

该命令接受以下参数:

TARGET

mc-cmd

Required

已配置 MinIO 部署的 alias

TIER_NAME

mc-cmd

Required

命令要修改的远程层名称。 该值对应于创建远程层时指定的 mc ilm tier add TIER_NAME

--access-key

mc-cmd

Optional

远程 S3 或 MinIO 层上某个用户的 access key。 该用户必须具备在远程存储桶或存储桶前缀上执行 read/write/list/delete 操作的权限。

此选项仅适用于 TIER_TYPEs3minio 的远程存储层。 对其他 TIER_TYPE,此选项无效。

--secret-key

mc-cmd

Optional

远程 s3minio 层上某个用户的 secret key。

此选项仅适用于 TIER_TYPEs3minio 的远程存储层。 对其他 TIER_TYPE,此选项无效。

--use-aws-role

mc-cmd

Optional

使用本地已配置的 AWS Role 的访问权限。

此选项仅在 TIER_TYPEs3minio 时适用。 对其他 TIER_TYPE 值,此选项无效。

--account-key

mc-cmd

Optional

远程 Azure 层上某个用户的 account key。

Azure 层类型必填

使用此选项轮换与远程层关联的 --account-name 的凭证。

此选项仅适用于 TIER_TYPEazure 的远程存储层。 对其他登录类型,此选项无效。

--az-sp-tenant-id

mc-cmd

Optional

说明

新增: mc

RELEASE.2024-07-03T20-17-25Z

Azure service principal account 的 Directory ID。

此选项仅适用于 TIER_TYPEazure 的远程存储层。 对其他登录类型,此选项无效。

--az-sp-client-id

mc-cmd

Optional

说明

新增: mc

RELEASE.2024-07-03T20-17-25Z

Azure service principal account 的 Client ID。

需要 --az-sp-client-secret

此选项仅适用于 TIER_TYPEazure 的远程存储层。 对其他登录类型,此选项无效。

--az-sp-client-secret

mc-cmd

Optional

说明

新增: mc

RELEASE.2024-07-03T20-17-25Z

Azure service principal account 的 secret。

需要 --az-sp-client-id

此选项仅适用于 TIER_TYPEazure 的远程存储层。 对其他登录类型,此选项无效。

--credentials-file

mc-cmd

Optional

Google Cloud Storage 层类型必填

远程 GCS 层上某个用户的凭证文件。 该用户必须具备在远程存储桶或存储桶前缀上执行 read/write/list/delete 操作的权限。

此选项仅适用于 TIER_TYPEgcs 的远程存储层。 对其他登录类型,此选项无效。

全局标志

此命令支持 全局标志 中的任意选项。

示例

轮换 S3 远程层凭证

以下示例更新 myminio 部署上名为 S3TIER 的 S3 远程层凭证。

mc ilm tier update myminio S3TIER --access-key ACCESS_KEY --secret-key SECRET_KEY
  • S3TIER 替换为你的 Amazon Simple Storage Solution 层名称。
  • ACCESS_KEY 替换为你的 S3 存储更新后的 access key。
  • SECRET_KEY 替换为上面提供的 access key 对应的更新后 secret key。

轮换 Azure Blob Storage 远程层凭证

以下示例更新 myminio 部署上名为 AXTIER 的 Azure 远程层凭证。

mc ilm tier update myminio AZTIER --account-key ACCOUNT-KEY
  • AZTIER 替换为你的 Azure 层名称。
  • ACCOUNT-KEY 替换为你的 Azure 存储更新后的密钥。

轮换 Google Cloud Storage 远程层凭证

以下示例更新 myminio 部署上名为 GCSTIER 的 Google Cloud Storage 远程层凭证。

 mc ilm tier update myminio GCSTIER --credentials-file /path/to/credentials.json
  • GCSTIER 替换为你的 Google Cloud Storage 层名称。
  • /path/to/credentials.json 替换为用于访问远程存储的更新后凭证文件路径。

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

所需权限

有关修改层所需的权限,请参阅父命令中的 required permissions

93 - mc replicate rm

说明

变更: RELEASE.2022-12-24T15-21-38Z

mc replicate rm 替代 mc admin bucket remote rm 命令。 删除复制配置时会自动删除其底层远程目标。

语法

mc replicate rm 命令用于从 MinIO 存储桶中删除 replication rule

mc replicate remove 命令与 mc replicate rm 功能等价。

mc [GLOBALFLAGS] replicate rm FLAGS [FLAGS] ALIAS

以下命令从 myminio MinIO 部署中的 mydata 存储桶删除指定 id 的复制规则:

mc replicate rm --id "c76um9h4b0t1ijr36mug" myminio/mydata

命令语法如下:

mc [GLOBALFLAGS] replicate rm     \
                 --id "string"    \
                 [--all --force]  \
                 ALIAS
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

必需 MinIO 部署的 alias,以及要删除复制规则的 存储桶或存储桶前缀的完整路径。例如:

mc replicate rm --id "ID" myminio/mybucket
--id

mc-cmd

必需 指定已配置复制规则的唯一 ID。

如果指定 --all,则可省略此选项

--all

mc-cmd

可选 删除指定存储桶上的所有复制规则。要求同时指定 --force 标志。

--force

mc-cmd

可选 当指定 --all 时必需。

全局标志

此命令支持 全局标志 中的任意选项。

示例

从存储桶中删除一条复制规则

使用 mc replicate rm 删除存储桶复制规则:

mc replicate rm --id "ID" ALIAS/PATH
  • ID 替换为要删除的复制规则唯一 ID。 使用 mc replicate ls 列出该存储桶的所有复制规则。
  • ALIAS 替换为 MinIO 部署的 alias
  • PATH 替换为存储桶或存储桶前缀的路径。

从存储桶中删除所有复制规则

使用 mc replicate rm 删除存储桶复制规则:

mc replicate rm --all --force ALIAS/PATH
  • ALIAS 替换为 MinIO 部署的 alias
  • PATH 替换为存储桶或存储桶前缀的路径。

行为

删除复制规则不会影响已复制对象

删除存储桶的一条或全部复制规则,不会 删除已按这些规则复制的任何对象。

使用此命令或 mc rb 命令可删除远程目标上的已复制对象。 你可以通过 X-Amz-Replication-Status 元数据字段识别已复制对象,其值为 REPLICA。包含来自多个复制源对象的存储桶在删除前可能需要额外的 处理与过滤,以确定对象来源。

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

94 - mc support proxy

说明

使用 mc support proxy 命令配置与 MinIO SUBNET 通信时使用的代理。

示例

设置代理 URL

定义部署 minio1 与 SUBNET 通信时使用的代理 URL。 此示例中的代理 URL 为 http://my.proxy

mc support proxy set minio1 http://my.proxy

删除为部署配置的代理 URL

以下命令会删除为别名 minio1 配置的代理 URL。

mc support proxy remove minio1

禁用 callhome 日志

以下命令显示为别名 minio1 配置的代理 URL。

mc support proxy show minio1

语法

mc support proxy set

mc-cmd

为 MinIO 部署创建与 MinIO SUBNET 通信时使用的代理 URL。

mc support proxy set ALIAS PROXY_URL

mc support proxy show

mc-cmd

显示当前为与 MinIO SUBNET 通信配置的代理 URL。

mc support proxy show ALIAS

mc support proxy remove

mc-cmd

删除为与 MinIO SUBNET 通信配置的代理 URL。

mc support proxy remove ALIAS

全局标志

此命令支持 全局标志 中的任意选项。

95 - mc diff

语法

mc diff 命令用于计算两个文件系统目录或 MinIO 存储桶之间的差异。 mc diff 仅列出缺失的对象或大小不同的对象。mc diff 不会 比较对象内容。

以下命令用于比较本地文件系统中的一个对象与 myminio MinIO 部署中 mydata 存储桶内一个对象之间的差异:

mc diff ~/mydata/myobject.txt myminio/mydata/myobject.txt

mc diff 命令语法如下:

mc [GLOBALFLAGS] diff SOURCE TARGET
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

SOURCE

mc-cmd

必需 要与 TARGET 比较的对象。

对于来自 MinIO 的对象, 指定 alias 以及该对象的完整路径 (例如存储桶和对象路径)。例如:

mc diff play/mybucket/object.txt ~/mydata/object.txt

对于来自本地文件系统的对象,指定该对象的完整路径。例如:

mc diff ~/mydata/object.txt play/mybucket/object.txt
TARGET

mc-cmd

必需 要与 SOURCE 比较的对象。

对于来自 MinIO 的对象, 指定 alias 以及该对象的完整路径 (例如存储桶和对象路径)。例如:

mc diff play/mybucket/object.txt ~/mydata/object.txt

对于来自本地文件系统的对象,指定该对象的完整路径。例如:

mc diff ~/mydata/object.txt play/mybucket/object.txt

全局标志

此命令支持 全局标志 中的任意选项。

示例

以下示例假定 play 别名已存在于 mc 配置文件 中。你可以将 play 替换为 你首选 S3 兼容部署的别名。

有关别名的更多信息,请参阅 mc alias

mc diff play/bucket1 play/bucket2

行为

输出图例

mc diff 在格式化 diff 输出时使用以下图例:

FIRST < SECOND - 对象仅存在于 FIRST
FIRST > SECOND - 对象仅存在于 SECOND
FIRST ! SECOND - FIRST 中存在较新的对象

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

96 - mc idp ldap update

描述

mc idp ldap update 命令用于修改 AD/LDAP 提供程序的现有配置集。

以下示例修改 myminio 部署的两个 AD/LDAP 配置项。

mc idp ldap update                                \
            myminio                               \
            lookup_bind_dn=cn=admin,dc=min,dc=io  \
            lookup_bind_password=somesecret

该命令使用以下语法:

mc [GLOBALFLAGS] idp ldap update           \
                          ALIAS            \
                          [CFG_PARAM1]     \
                          [CFG_PARAM2]...
  • ALIAS 替换为要更新 AD/LDAP 集成配置的 MinIO 部署的 alias

  • [CFG_PARAM#] 替换为各个 configuration setting 键值对,格式为 PARAMETER="value"

  • 方括号 [] 表示可选参数。

  • 同一行中的参数彼此相互依赖。

  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

要修改其 AD/LDAP 集成配置的 MinIO 部署的 alias

例如:

mc idp ldap update myminio                               \
                   lookup_bind_dn=cn=admin,dc=min,dc=io  \
server_addr

mc-cmd

Required

指定 Active Directory / LDAP server 的主机名。例如:

ldapserver.com:636
说明

srv_record_name 会自动识别端口

如果你的 AD/LDAP server 使用 DNS SRV Records,则 不要server_addr 的值后追加端口号。 SRV 请求在返回可用服务器列表时会自动包含端口号。

该参数对应环境变量 MINIO_IDENTITY_LDAP_SERVER_ADDR

lookup_bind_dn

mc-cmd

Required

指定 MinIO 在查询 AD/LDAP server 时所使用的 AD/LDAP 账户 Distinguished Name (DN)。 这会启用对 AD/LDAP server 的 Lookup-Bind 认证。

该 DN 账户应为只读访问账号,并具备足够权限以支持执行用户和组查询。

该参数对应环境变量 MINIO_IDENTITY_LDAP_LOOKUP_BIND_DN

lookup_bind_password

mc-cmd

Required

指定 Lookup-Bind 用户账户的密码。

说明

变更: RELEASE.2023-06-23T20-26-00Z

当通过 mc admin config get 返回此值时,MinIO 会将其脱敏。

该参数对应环境变量 MINIO_IDENTITY_LDAP_LOOKUP_BIND_PASSWORD

user_dn_attributes

mc-cmd

Optional

说明

新增: RELEASE.2024-06-06T09-36-42Z

用户 DN 属性的逗号分隔列表。

一些有效值包括 uid,cn,mail,sshPublicKey

如果要为 LDAP 用户启用公钥认证,请将 sshPublicKey 作为 DN 属性传入。 随后,用户即可使用传入的 SSH Public Key 登录 SFTP server。

mc idp ldap update ALIAS user_dn_attributes=sshPublicKey
user_dn_search_base_dn

mc-cmd

Required

指定 MinIO 在查询与认证客户端所提供凭证相匹配的用户凭证时所使用的基础 Distinguished Name (DN)。

多个 DN 之间请使用分号(;)分隔。

例如:

cn=miniousers,dc=myldapserver,dc=net;ou=swengg,dc=min,dc=io

支持 Lookup-Bind 模式。

该参数对应环境变量 MINIO_IDENTITY_LDAP_USER_DN_SEARCH_BASE_DN

user_dn_search_filter

mc-cmd

Required

指定 MinIO 在查询与认证客户端所提供凭证相匹配的用户凭证时所使用的 AD/LDAP 搜索过滤器。

使用 %s 替换字符将客户端指定的用户名插入搜索字符串。例如:

(userPrincipalName=%s)

该参数对应环境变量 MINIO_IDENTITY_LDAP_USER_DN_SEARCH_FILTER

comment

mc-cmd

Optional

指定要附加到 AD/LDAP 配置上的注释。

该参数对应环境变量 MINIO_IDENTITY_LDAP_COMMENT

enabled

mc-cmd

Optional

设为 false 可禁用 AD/LDAP 配置。

如果设为 false,应用程序将无法生成 STS 凭证, 也无法再使用已配置的提供者向 MinIO 进行身份验证。

默认为 true,即 “enabled”。

group_search_base_dn

mc-cmd

Optional

指定 MinIO 在执行组查询时所使用的组搜索基础 Distinguished Names 列表,多个值之间使用分号(;)分隔。

例如:

cn=miniogroups,dc=myldapserver,dc=net;ou=swengg,dc=min,dc=io

该参数对应环境变量 MINIO_IDENTITY_LDAP_GROUP_SEARCH_BASE_DN

group_search_filter

mc-cmd

Optional

指定用于为已认证用户执行组查询的 AD/LDAP 搜索过滤器。

使用 %s 替换字符将客户端指定的用户名插入搜索字符串。 使用 %d 替换字符将客户端指定用户名对应的 Distinguished Name 插入搜索字符串。

例如:

(&(objectclass=groupOfNames)(memberUid=%s))

在提供 AD/LDAP 组搜索过滤器时,应将其配置为仅返回支持认证所需的最少相关组。 返回大量组成员关系的过滤器会增加相关调用和资源的体量。 对大请求体或大响应体敏感的功能可能因此出现意外行为。

该参数对应环境变量 MINIO_IDENTITY_LDAP_GROUP_SEARCH_FILTER

server_insecure

mc-cmd

Optional

指定 on 可允许与 AD/LDAP server 建立未加密的连接(非 TLS)。

MinIO 会以明文形式将 AD/LDAP 用户凭证发送到 AD/LDAP server,因此 必须 启用 TLS,才能防止凭证在传输过程中被读取。 启用此选项会带来安全风险,因为任何能够访问网络流量的用户都可能看到未加密的明文 凭证。

默认值为 off

该参数对应环境变量 MINIO_IDENTITY_LDAP_SERVER_INSECURE

server_starttls

mc-cmd

Optional

指定 on 可启用到 AD/LDAP server 的 StartTLS 连接。

默认值为 off

有关 StartTLS 的更多信息,请参见 LDAP RFC 4511 specification 第 4.14 节。

该参数对应环境变量 MINIO_IDENTITY_LDAP_SERVER_STARTTLS

srv_record_name

mc-cmd

Optional

说明

新增: RELEASE.2022-12-12T19-27-27Z

指定适当的值,以允许 MinIO 通过 DNS SRV record 请求选择 AD/LDAP server。

启用后,MinIO 会通过以下方式选择 AD/LDAP server:

  • 按标准命名约定构造目标 SRV 记录名称。
  • 请求可用的 AD/LDAP server 列表。
  • 根据优先级和权重选择合适的目标。

下面的配置示例假定 AD/LDAP server 地址设为 example.com,SRV 记录协议为 _tcp

对于以 _ldap 开头的 SRV 记录名称,指定 ldap。 构造出的 DNS SRV 记录名称类似如下:

_ldap._tcp.example.com

对于以 _ldaps 开头的 SRV 记录名称,指定 ldaps。 构造出的 DNS SRV 记录名称类似如下:

_ldaps._tcp.example.com

如果你的 DNS SRV 记录名称使用了其他 service 或 protocol 名称,请指定 on, 并将完整记录名称作为 LDAP server 地址提供。 例如:_ldapserver._specialtcp.example.com

有关 DNS SRV 记录的更多信息,请参见 DNS SRV Records for LDAP

说明

DNS SRV 记录配置中的 server 地址

指定的 server 名称 不得 包含端口号。 这与标准 AD/LDAP 配置不同,后者要求提供端口号。

关于如何配置 AD/LDAP server 地址,请参见 server_addrMINIO_IDENTITY_LDAP_SERVER_ADDR

该参数对应环境变量 MINIO_IDENTITY_LDAP_SRV_RECORD_NAME

tls_skip_verify

mc-cmd

Optional

指定 on 可在不验证的情况下信任 AD/LDAP server 的 TLS 证书。 如果 AD/LDAP server 的 TLS 证书由不受信任的证书颁发机构签名 (例如自签名),则可能需要此选项。

默认值为 off

该参数对应环境变量 MINIO_IDENTITY_LDAP_TLS_SKIP_VERIFY

全局标志

此命令支持 全局标志 中的任意选项。

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

97 - mc replicate status

语法

mc replicate status 命令显示 MinIO 存储桶的 复制状态。 该状态还会列出远程目标路径或位置。

以下命令显示 myminio MinIO 部署上 mydata 存储桶的当前复制状态:

mc replicate status myminio/mydata

该命令具有以下语法:

mc [GLOBALFLAGS] replicate status TARGET
                           [--limit-upload value]
                           [--limit-download value]
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

MinIO 部署的 alias,以及要显示复制状态的存储桶或存储桶前缀的完整路径。 例如:

mc replicate status myminio/mybucket
--limit-download

mc-cmd

Optional

将下载速率限制为不超过指定值,单位可为 KiB/s、MiB/s 或 GiB/s。 有效单位包括:

  • B 表示 bytes
  • K 表示 kilobytes
  • G 表示 gigabytes
  • T 表示 terabytes
  • Ki 表示 kibibytes
  • Gi 表示 gibibytes
  • Ti 表示 tebibytes

例如,要将下载速率限制为不超过 1 GiB/s,可使用以下参数:

--limit-download 1G

如果未指定,MinIO 使用不限速的下载速率。

--limit-upload

mc-cmd

Optional

将上传速率限制为不超过指定值,单位可为 KiB/s、MiB/s 或 GiB/s。 有效单位包括:

  • B 表示 bytes
  • K 表示 kilobytes
  • G 表示 gigabytes
  • T 表示 terabytes
  • Ki 表示 kibibytes
  • Gi 表示 gibibytes
  • Ti 表示 tebibytes

例如,要将上传速率限制为不超过 1 GiB/s,可使用以下参数:

--limit-upload 1G

如果未指定,MinIO 使用不限速的上传速率。

全局标志

此命令支持 全局标志 中的任意选项。

示例

显示复制状态

使用 mc replicate status 显示存储桶复制状态:

mc replicate status ALIAS/PATH
  • ALIAS 替换为 MinIO 部署的 alias
  • PATH 替换为存储桶或存储桶前缀路径。

行为

移除并重新添加的 ARN

说明

变更: mc

RELEASE.2023-03-20T17-17-53Z

该命令的标准输出不会显示此前已从复制配置中移除的 ARN。

如需列出所有 ARN(包括不再属于当前复制配置的 ARN),请使用 --json 标志。 json 输出会持续显示在旧 ARN 下复制的数据。 如果某个 ARN 在同一存储桶上被移除后又重新添加,这些信息会很有价值。

新的 ARN 不会 触发对先前已同步对象的重新复制。

98 - mc support top

说明

说明

说明

变更: RELEASE.2022-08-11T00-30-48Z

mc support top 替代 mc admin top 命令。

说明

需要完成 SUBNET 注册

mc support 命令面向已在 MinIO SUBNET 注册的 MinIO 部署设计,以确保诊断和 性能测试获得最佳结果。 未注册 SUBNET 的部署无法使用 mc support 命令。

描述

mc support top 命令返回分布式 MinIO 部署的统计信息, 类似于 shell 中 top 命令的输出。

说明

说明

mc support top 不支持单节点单驱动 MinIO 部署。

mc support top 具有以下子命令:

有关每个子命令的详细信息,请参阅上方链接的页面。

语法

该命令的语法如下:

mc support top COMMAND [COMMAND FLAGS] [ARGUMENTS ...]

99 - mc du

语法

mc du 命令用于汇总存储桶和文件夹的磁盘使用量。 你也可以对本地文件系统使用 du,以生成与 du 命令类似的结果。

以下命令打印 myminio MinIO 部署中 mybucket 存储桶的磁盘使用量:

mc du play/mybucket

输出类似如下:

825KiB 3 objects        mybucket

mc du 命令语法如下:

mc [GLOBALFLAGS] du                    \
                 [--depth]             \
                 [--recursive]         \
                 [--rewind]            \
                 [--versions]          \
                 ALIAS [ALIAS ...]
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

MinIO 部署的 alias 以及文件夹的完整路径。例如:

mc du myminio/mybucket

你可以在同一个或不同的 MinIO 部署上指定多个存储桶和文件夹。例如:

mc du myminio/mybucket myminio/myotherbucket/myfolder

对于本地文件系统中的文件夹,请指定该文件夹的完整路径。例如:

mc du ~/data/images

mc du 完成所需时间取决于目标存储桶和文件夹的大小。大型存储桶可能需要一些时间来生成磁盘使用量摘要。

--depth, d

mc-cmd

Optional

打印命令中指定路径下 N 层及以内所有文件夹的总计值。默认值为 0,仅统计指定路径本身。

--recursive, r

mc-cmd

Optional

递归打印每个存储桶或子文件夹的总计值。

--rewind

mc-cmd

Optional

指示 mc du 仅对指定时间点存在的对象版本执行操作。

  • 如需回溯到过去的特定日期,请将该日期指定为 ISO8601 格式的时间戳。 例如:--rewind "2020.03.24T10:00"
  • 如需按时间长度回溯,请将该时长指定为 #d#hh#mm#ss 格式的字符串。 例如:--rewind "1d2hh3mm4ss"

--rewind 要求指定的 ALIAS 指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用 mc version 启用或禁用存储桶版本控制。

--rewind--versions 一起使用,可显示特定时间点存在的对象版本的磁盘使用量。

--versions

mc-cmd

Optional

指示 mc du 对存储桶中存在的所有对象版本执行操作。

--versions 要求指定的 ALIAS 指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用 mc version 启用或禁用存储桶版本控制。

--versions--rewind 一起使用,可显示特定时间点存在的对象版本的磁盘使用量。

全局标志

此命令支持 全局标志 中的任意选项。

示例

查看存储桶或文件夹的磁盘使用量

使用 mc du 打印存储桶或文件夹的磁盘使用量摘要:

mc du ALIAS/PATH
  • ALIAS 替换为 S3 兼容主机的 alias
  • PATH 替换为 S3 兼容主机上存储桶或文件夹的路径。

查看某个时间点的磁盘使用量

使用 mc du --rewind 打印过去某个特定时间点的磁盘使用量摘要:

mc du --rewind DURATION ALIAS/PATH
  • DURATION 替换为所需的过去时间点。例如,指定 30d 以显示当前日期前 30 天的磁盘使用量。
  • ALIAS 替换为 S3 兼容主机的 alias
  • PATH 替换为 S3 兼容主机上存储桶或文件夹的路径。
说明

需要版本控制

要使用此功能,mc du 需要启用 存储桶版本控制。 请使用 mc version 在存储桶上启用版本控制。

递归查看磁盘使用量

使用 mc du --recursive 递归打印每个文件夹的摘要:

mc du --recursive ALIAS/PATH
  • ALIAS 替换为 S3 兼容主机的 alias
  • PATH 替换为 S3 兼容主机上存储桶或文件夹的路径。

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

100 - mc replicate export

语法

mc replicate export 命令将 MinIO 存储桶的 JSON 格式 复制规则 导出到 STDOUT

以下命令导出 myminio MinIO 部署中 mydata 存储桶的复制配置:

mc replicate export myminio/mydata > mydata-replication.json

该命令的语法如下:

mc [GLOBALFLAGS] export ALIAS
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

必填 MinIO 部署的 alias,以及要导出复制规则的存储桶或 存储桶前缀的完整路径。例如:

mc replicate export myminio/mybucket

全局标志

此命令支持 全局标志 中的任意选项。

示例

导出现有复制规则

使用 mc replicate export 导出存储桶复制规则:

mc replicate export ALIAS/PATH > bucket-replication-rules.json
  • ALIAS 替换为 MinIO 部署的 alias
  • PATH 替换为存储桶或存储桶前缀的 路径。

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

101 - mc support upload

Description

mc support upload 将文件从本地文件系统复制到 SUBNET 工单。

说明

需要完成 SUBNET 注册

mc support 命令面向已在 MinIO SUBNET 注册的 MinIO 部署设计,以确保诊断和 性能测试获得最佳结果。 未注册 SUBNET 的部署无法使用 mc support 命令。

Syntax

mc support profile 命令具有以下语法:

mc [GLOBALFLAGS] support profile              \
                         ALIAS                \
                         FILE                 \
                         [--comment "string"] \
                         [--enc]              \
                         [--issue integer]

Parameters

ALIAS

mc-cmd

Required

MinIO 部署的 alias

FILE

mc-cmd

Required

要上传到 SUBNET 的文件路径。

--comment

mc-cmd

Optional

上传文件时,向 issue 附加一条消息。

--enc

mc-cmd

Optional

对上传内容进行加密。 用于加密的密钥仅 MinIO 可访问。

--issue

mc-cmd

Optional

指定要添加该文件的 issue 编号。 如果未指定,则文件会上传到通用 issue 编号 0

Global Flags

此命令支持 全局标志 中的任意选项。

Examples

Upload a file to an issue

此命令将本地文件系统中的文件 ./trace.log 上传到别名为 minio1 的部署对应的 SUBNET issue 10001

mc support upload --issue 10001 minio1 ./trace.log

Upload a file to an issue with a comment for MinIO Engineers

此命令将本地文件系统中的文件 ./trace.log 上传到别名为 minio1 的部署对应的 SUBNET issue 10001。 该命令还会附加一条关于该文件的注释,供 MinIO Engineers 查看。

mc support upload --issue 10001 --comment "here is the requested trace log" minio1 ./trace.log

102 - mc encrypt

描述

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

子命令

mc encrypt 包含以下子命令:

子命令

描述

clear

mc encrypt clear 命令用于移除存储桶当前的默认加密设置。

info

mc encrypt info 命令返回存储桶当前的默认加密设置。

set

mc encrypt set 加密命令用于设置或更新存储桶默认的 服务端加密(SSE)模式。MinIO 会使用指定的 SSE 模式 自动加密写入该存储桶的对象。

103 - mc replicate import

语法

mc replicate import 命令从 STDIN 为 MinIO 存储桶导入 JSON 格式的 replication rules

以下命令为 myminio MinIO 部署上的 mydata 存储桶导入复制配置:

mc replicate import myminio/mydata < mydata-replication.json

该命令的语法如下:

mc [GLOBALFLAGS] import ALIAS
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

必需。MinIO 部署的 alias,以及要导入复制规则的存储桶或存储桶前缀的完整路径。例如:

mc replicate import myminio/mybucket

全局标志

此命令支持 全局标志 中的任意选项。

示例

导入现有复制规则

使用 mc replicate import 导入存储桶复制规则:

mc replicate import ALIAS/PATH < bucket-replication-rules.json
  • ALIAS 替换为 MinIO 部署的 alias
  • PATH 替换为存储桶或存储桶前缀路径。

行为

导入配置会覆盖现有规则

mc replicate import 会将当前存储桶复制规则替换为导入的 JSON 配置中定义的规则。

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

104 - mc event

描述

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

MinIO 会自动将触发的事件发送到已配置的通知目标。 MinIO 支持 AMQP (RabbitMQ)、Redis、ElasticSearch、NATS 和 PostgreSQL 等通知目标。 有关更多信息,请参阅 MinIO 存储桶通知

子命令

mc event 包含以下子命令:

子命令

描述

add

mc event add 命令为存储桶添加事件通知触发器。

ls

mc event ls 命令列出某个存储桶的所有事件通知触发器。

rm

mc event rm 命令用于从存储桶中移除事件通知触发器。

105 - mc find

语法

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

以下命令会在 myminio MinIO 部署的 mydata 存储桶中, 搜索所有匹配指定模式的对象:

mc find myminio/mydata --name "*.jpg"

该命令的语法如下:

mc [GLOBALFLAGS] find                    \
                 [--exec "string"]       \
                 [--ignore "string"]     \
                 [--larger "string"]     \
                 [--maxdepth "string"]   \
                 [--metadata "string"]   \
                 [--name "string"]       \
                 [--newer-than "string"] \
                 [--older-than "string"] \
                 [--path "string"]       \
                 [--print "string"]      \
                 [--regex "string"]      \
                 [--smaller "string"]    \
                 [--tags "string"]`      \
                 [--versions]            \
                 [--watch]               \
                 ALIAS
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

对于 MinIO 或 S3 兼容主机上的对象,指定 alias 和完整搜索路径(例如存储桶与前缀)。 例如:

mc find play/mydata/

对于文件系统上的对象,指定要搜索的完整路径。 例如:

mc find ~/mydata/

执行 mc find ALIAS 且不带其他参数时,会返回指定路径下 所有 对象或文件的列表,行为类似 mc ls

--exec

mc-cmd

Optional

mc find 返回的每个对象启动一个外部进程。 支持对输出进行 替换格式化

--ignore

mc-cmd

Optional

排除名称匹配指定 通配符模式 的对象。

--larger

mc-cmd

Optional

匹配所有大于指定大小的对象,大小单位见 units

--maxdepth

mc-cmd

Optional

将目录遍历限制为指定深度。

--metadata

mc-cmd

Optional

说明

新增: mc

RELEASE.2023-04-12T02-21-51Z

仅用于 MinIO 部署。

返回元数据匹配指定 key=value 的对象。 使用格式 --metadata="KEY=value"

你可以传入值为空的 key。 在这种情况下,mc find 会匹配不包含该元数据 key 的对象,或该元数据 key 的值为空的对象。

你可以多次使用该选项,以匹配更多元数据 key。 要返回对象,该对象必须在所有元数据 key 上都匹配。

--name

mc-cmd

Optional

返回名称匹配指定 通配符模式 的对象。

--newer-than

mc-cmd

Optional

匹配晚于指定天数的对象。 指定 #d#hh#mm#ss 格式的字符串。 例如:--older-than 1d2hh3mm4ss

说明

变更: RELEASE.2025-02-04T04-57-50Z

日期时间也可以使用 YYYY-MM-DD HH:MM:SS TMZ 格式的绝对时间指定。 例如,mc find --newer-than="2025-01-22 09:57:00 CET" minioalias/mybucket

--older-than

mc-cmd

Optional

匹配早于指定时间限制的对象。指定 #d#hh#mm#ss 格式的字符串。 例如:--older-than 1d2hh3mm4ss

说明

变更: RELEASE.2025-02-04T04-57-50Z

日期时间也可以使用 YYYY-MM-DD HH:MM:SS TMZ 格式的绝对时间指定。 例如,mc find --newer-than="2025-01-22 09:57:00 CET" minioalias/mybucket

默认为 0(所有对象)。

--path

mc-cmd

Optional

返回名称匹配指定 通配符模式 的目录内容。

--print

mc-cmd

Optional

将结果打印到 STDOUT。 支持对输出进行 替换格式化

--regex

mc-cmd

Optional

返回名称匹配指定 PCRE 正则表达式模式的对象 或目录内容。

--tags

mc-cmd

Optional

说明

新增: mc

RELEASE.2023-04-12T02-21-51Z

仅用于 MinIO 部署。

返回标签匹配指定 RE2 RegEx pattern 的对象。 使用格式 --tag="KEY=regexValue"

你可以传入值为空的 key。 在这种情况下,mc find 会匹配不包含该元数据 key 的对象,或该元数据 key 的值为空的对象。

你可以多次使用该选项,以匹配更多标签。 要返回对象,该对象必须在所有标签上都匹配。

--smaller

mc-cmd

Optional

匹配所有小于指定大小的对象, 大小单位见 units

--versions

mc-cmd

Optional

在结果中包含对象的所有版本。

--watch

mc-cmd

Optional

持续监控 ALIAS,并返回任何 匹配指定条件的新对象。

全局标志

此命令支持 全局标志 中的任意选项。

示例

在存储桶中查找特定对象

mc find ALIAS/PATH --name NAME
  • ALIAS 替换为 S3 兼容主机的 alias
  • PATH 替换为 S3 兼容主机上的存储桶路径。 省略该路径可从 S3 主机根路径开始搜索。
  • NAME 替换为对象。

在存储桶中按文件扩展名查找对象

mc find ALIAS/PATH --name *.EXTENSION
  • ALIAS 替换为 S3 兼容主机的 alias
  • PATH 替换为 S3 兼容主机上的存储桶路径。
  • EXTENSION 替换为对象的文件扩展名。

查找所有匹配文件并复制到 S3 服务

mc find--exec 选项结合使用,可在本地文件系统中查找 文件,并将其传递给 mc 命令进行进一步处理。以下示例使用 mc cpmc find 的输出复制到 S3 兼容主机。

mc find FILEPATH --name "*.EXTENSION" --exec "mc cp {} ALIAS/PATH"
  • FILEPATH 替换为要搜索目录的 完整文件路径。
  • EXTENSION 替换为对象的文件扩展名。
  • ALIAS 替换为 S3 兼容主机的 alias
  • PATH 替换为 S3 兼容主机上的存储桶路径。

如需持续监视指定目录并复制新对象, 请添加 --watch 参数:

mc find --watch FILEPATH --name "*.EXTENSION" --exec "mc cp {} ALIAS/PATH"

查找具有匹配标签的对象

说明

说明

标签匹配仅适用于 MinIO 部署。

mc find --tags="key=v*" ALIAS/BUCKET/
  • key 替换为要匹配的标签键名。
  • v* 替换为要用于匹配的 RE2 正则表达式。
  • ALIAS 替换为 MinIO 部署的 alias
  • BUCKET 替换为要搜索的存储桶或前缀。

你可以添加更多 --tags="key=RegExpression" 标志进行匹配。 匹配对象必须满足所有包含的标签条件。

查找具有匹配元数据的对象

说明

说明

元数据匹配仅适用于 MinIO 部署。

mc find --json --metadata="content-type=text/csv" ALIAS/BUCKET/
  • content-type=text/csv 替换为要匹配的元数据字段和值的键值对。
  • ALIAS 替换为 MinIO 部署的 alias
  • BUCKET 替换为要搜索的存储桶或前缀。

你可以添加更多 --tags="metadata=value" 标志进行匹配。 匹配对象必须满足所有包含的元数据字段条件。

行为

计量单位

mc find --smallermc find --larger 标志 接受以下不区分大小写的后缀,用于表示指定大小值的单位:

后缀 单位大小
k KB(千字节,1000 字节)
m MB(兆字节,1000 千字节)
g GB(吉字节,1000 兆字节)
t TB(太字节,1000 吉字节)
ki KiB(Kibibyte,1024 字节)
mi MiB(Mebibyte,1024 Kibibytes)
gi GiB(Gibibyte,1024 Mebibytes)
ti TiB(Tebibyte,1024 Gibibytes)

省略后缀时默认单位为 bytes

替换格式

mc find --execmc find --print 命令 支持字符串替换,对以下关键字具有特殊解释。

以下关键字同时适用于文件系统和 S3 服务目标:

  • {} - 替换为完整路径。
  • {base} - 替换为路径的 basename。
  • {dir} - 替换为路径的 dirname。
  • {size} - 替换为路径对应对象的大小。
  • {time} - 替换为路径对应对象的修改时间。

以下关键字仅适用于 S3 服务目标:

  • {url} - 替换为路径的可共享 URL。

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

106 - mc get

说明

新增: mc

RELEASE.2024-02-24T01-33-20Z

语法

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

mc cpmc mirror 相比,mc get 为下载文件提供了更简化的接口。 mc get 使用单向下载功能,以牺牲效率为代价,换取相较其他命令更低的功能复杂度。

以下命令将文件 logo.png 从 s3 源下载到本地文件系统路径 ~/images/collateral/

mc get minio/marketing/logo.png ~/images/collateral

命令语法如下:

mc [GLOBALFLAGS] get                      \
                 SOURCE                   \
                 TARGET                   \
                 [--enc-c string]         \
                 [--version-id, --vid value]
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

SOURCE

mc-cmd

Required

要下载对象的完整路径,包含 alias、存储桶、prefix(如使用)和对象名。

TARGET

mc-cmd

Required

本地文件系统上的目标路径,命令会将下载的文件放置到该路径。

--enc-c

mc-cmd

Optional

使用客户端管理的密钥,通过服务端 SSE-C 加密 对对象进行加密或解密。

该参数接受格式为 KEY=VALUE 的键值对。

KEY

对象的完整路径,格式为 alias/bucket/path/object.ext

你也可以只指定顶层路径,以便对该路径下的所有操作使用同一个加密密钥。

VALUE

指定用于 SSE-C 加密的密钥,可以是 32 字节 RawBase64 编码密钥, 也可以是 64 字节十六进制编码密钥。

Raw Base64 编码 不接受= 填充的密钥。 请去掉填充,或使用支持 RAW 格式的 Base64 编码器。

  • KEY - 对象的完整路径,格式为 alias/bucket/path/object
  • VALUE - 用于加密对象的 32 字节 RAW Base64 编码数据密钥。

例如:

# RawBase64-Encoded string "mybucket32byteencryptionkeyssec"
--enc-c "myminio/mybucket/prefix/object.obj=bXlidWNrZXQzMmJ5dGVlbmNyeXB0aW9ua2V5c3NlYwo"

你可以通过重复该参数来指定多个加密密钥。

也可以指定某个前缀路径,对该路径下所有匹配对象应用加密:

--enc-c "myminio/mybucket/prefix/=bXlidWNrZXQzMmJ5dGVlbmNyeXB0aW9ua2V5c3NlYwo"
说明

说明

MinIO 强烈不建议在生产负载中使用 SSE-C 加密。 请改用 --enc-kms 参数启用 SSE-KMS,或使用 --enc-s3 参数启用 SSE-S3。

--version-id, --vid

mc-cmd

Optional

检索对象的特定版本。 传入要检索对象的版本 ID。

全局标志

此命令支持 全局标志 中的任意选项。

示例

从 MinIO 检索对象到本地文件系统

以下命令从别名 myminio 下的存储桶 mybucket 检索文件 myobject.csv,并将其放置到本地文件系统路径 /my/local/folder

mc get myminio/mybucket/myobject.csv /my/local/folder

从 MinIO 检索加密对象

以下命令检索一个加密文件,并将其放置到本地文件夹路径。

mc get --enc-c "play/mybucket/object=MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDA" play/mybucket/object path-to/object

107 - mc head

语法

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

mc head 不会对对象内容执行任何转换或格式化来提升可读性。 你也可以将 mc head 用于本地文件系统,以获得与 head 命令行工具类似的结果。

以下命令返回 myminio MinIO 部署中 mydata 存储桶内某个对象的前 10 行:

mc head myminio/mydata/myobject.txt

该命令的语法如下:

mc [GLOBALFLAGS] head                     \
                 [--lines int]            \
                 [--rewind "string"]      \
                 [--version-id "string"]  \
                 [--enc-c "string"]       \
                 ALIAS [ALIAS ...]
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

要输出的一个或多个对象。

对于 MinIO 上的对象,请指定 alias 和该对象的完整路径 (例如存储桶和对象路径)。例如:

mc head play/mybucket/object.txt

你可以在同一个或不同的 MinIO 部署上指定多个对象。例如:

mc head ~/mydata/object.txt myminio/mydata/object.txt

对于本地文件系统上的对象,请指定该对象的完整路径。 例如:

mc head ~/mydata/object.txt
--lines, n

mc-cmd

Optional

要输出的行数。

默认为 10

--enc-c

mc-cmd

Optional

使用客户端管理的密钥,通过服务端 SSE-C 加密 对对象进行加密或解密。

该参数接受格式为 KEY=VALUE 的键值对。

KEY

对象的完整路径,格式为 alias/bucket/path/object.ext

你也可以只指定顶层路径,以便对该路径下的所有操作使用同一个加密密钥。

VALUE

指定用于 SSE-C 加密的密钥,可以是 32 字节 RawBase64 编码密钥, 也可以是 64 字节十六进制编码密钥。

Raw Base64 编码 不接受= 填充的密钥。 请去掉填充,或使用支持 RAW 格式的 Base64 编码器。

  • KEY - 对象的完整路径,格式为 alias/bucket/path/object
  • VALUE - 用于加密对象的 32 字节 RAW Base64 编码数据密钥。

例如:

# RawBase64-Encoded string "mybucket32byteencryptionkeyssec"
--enc-c "myminio/mybucket/prefix/object.obj=bXlidWNrZXQzMmJ5dGVlbmNyeXB0aW9ua2V5c3NlYwo"

你可以通过重复该参数来指定多个加密密钥。

也可以指定某个前缀路径,对该路径下所有匹配对象应用加密:

--enc-c "myminio/mybucket/prefix/=bXlidWNrZXQzMmJ5dGVlbmNyeXB0aW9ua2V5c3NlYwo"
说明

说明

MinIO 强烈不建议在生产负载中使用 SSE-C 加密。 请改用 --enc-kms 参数启用 SSE-KMS,或使用 --enc-s3 参数启用 SSE-S3。

--rewind

mc-cmd

Optional

指示 mc head 仅对指定时间点存在的对象版本执行操作。

  • 如需回溯到过去的特定日期,请将该日期指定为 ISO8601 格式的时间戳。 例如:--rewind "2020.03.24T10:00"
  • 如需按时间长度回溯,请将该时长指定为 #d#hh#mm#ss 格式的字符串。 例如:--rewind "1d2hh3mm4ss"

--rewind 要求指定的 ALIAS 指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用 mc version 启用或禁用存储桶版本控制。

--version-id, vid

mc-cmd

Optional

指示 mc head 仅对指定的对象版本执行操作。

--version-id 要求指定的 ALIAS 指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用 mc version 启用或禁用存储桶版本控制。

全局标志

此命令支持 全局标志 中的任意选项。

示例

查看对象的部分内容

使用 mc head 返回对象的前 10 行:

mc head ALIAS/PATH
  • ALIAS 替换为 S3 兼容主机的 alias
  • PATH 替换为该对象在 S3 兼容主机上的路径。

查看对象在某个时间点的部分内容

使用 mc head --rewind 返回对象在过去特定时间点的前 10 行:

mc head ALIAS/PATH --rewind DURATION
  • ALIAS 替换为 S3 兼容主机的 alias
  • PATH 替换为该对象在 S3 兼容主机上的路径。
  • DURATION 替换为过去的某个时间点, 命令会返回该时间点对应的对象。例如,指定 30d 可返回当前日期前 30 天的对象版本。
说明

需要版本控制

要使用此功能,mc head 需要启用 存储桶版本控制。 请使用 mc version 在存储桶上启用版本控制。

查看对象指定版本的部分内容

使用 mc head --version-id 返回对象特定版本的前 10 行:

mc head ALIAS/PATH --version-id VERSION
  • ALIAS 替换为 S3 兼容主机的 alias
  • PATH 替换为该对象在 S3 兼容主机上的路径。
  • VERSION 替换为对象版本。 例如,指定 30d 可返回当前日期前 30 天的对象版本。
说明

需要版本控制

要使用此功能,mc head 需要启用 存储桶版本控制。 请使用 mc version 在存储桶上启用版本控制。

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

108 - mc idp ldap

说明

新增: RELEASE.2023-05-26T23-31-54Z

mc idp ldap and its subcommands replace mc admin idp ldap.

描述

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

mc idp ldap 命令可作为在 设置 AD/LDAP 连接 时使用环境变量的替代方案。它们仅支持 MinIO 部署。

有关如何使用这些命令的教程,请参阅 Active Directory / LDAP 访问管理

说明

说明

MinIO AD/LDAP 环境变量 会覆盖通过此命令修改或设置的对应配置项。

mc idp ldap 命令包含以下子命令:

子命令

描述

mc idp ldap add

mc idp ldap add 命令用于创建 AD/LDAP IDP 服务器配置。

mc idp ldap disable

mc idp ldap disable 命令用于禁用当前已配置的 AD/LDAP 提供程序。

mc idp ldap enable

mc idp ldap enable 命令用于启用当前已配置的 AD/LDAP 提供程序。

mc idp ldap info

mc idp ldap info 命令输出指定 MinIO 部署上 AD/LDAP 提供程序的当前配置。

mc idp ldap ls

mc idp ldap ls 命令列出 AD/LDAP 提供方当前已有的配置集合。

mc idp ldap policy 子命令

mc idp ldap policy 命令用于显示策略与关联组或用户之间的映射关系。

mc idp ldap rm

mc idp ldap rm 命令移除 AD/LDAP 提供方的现有配置。

mc idp ldap update

mc idp ldap update 命令用于修改 AD/LDAP 提供程序的现有配置集。

109 - mc idp ldap accesskey

说明

新增: RELEASE.2023-10-30T18-43-32Z

说明

mc idp ldap accesskey 命令可用于列出、删除或显示 LDAP 访问密钥对的信息。

mc idp ldap accesskey 命令仅支持 MinIO 部署。

此命令适用于 AD/LDAP 用户在通过 MinIO 完成身份验证后创建的 访问密钥

使用 mc idp ldap accesskey create 命令创建 AD/LDAP 服务账户。

MinIO 支持使用 AssumeRoleWithLDAPIdentity 通过 Security Token Service 生成临时访问密钥。

mc idp ldap accesskey 命令包含以下子命令:

子命令

说明

mc idp ldap accesskey create

mc idp ldap accesskey create 允许添加 LDAP 访问密钥对。

mc idp ldap accesskey disable

mc idp ldap accesskey disable 会在 MinIO 部署上禁用指定的 access key

mc idp ldap accesskey edit

mc idp ldap accesskey edit 在本地服务器上修改指定的 access key

mc idp ldap accesskey enable

mc idp ldap accesskey enable 在本地服务器上启用指定的 access key

mc idp ldap accesskey info

mc idp ldap accesskey info 输出指定访问密钥(一个或多个)的信息。

mc idp ldap accesskey ls

mc idp ldap accesskey ls 用于显示 LDAP 访问密钥对列表。

mc idp ldap accesskey rm

mc idp ldap accesskey rm 从本地服务器中删除指定的访问密钥。

110 - mc idp ldap accesskey create-with-login

说明

新增: mc

RELEASE.2024-04-18T16-45-29Z

描述

mc idp ldap accesskey create-with-login 使用基于终端的交互式提示与外部 AD/LDAP 服务器进行身份验证,并生成可供 MinIO 使用的访问密钥。

以下示例会提示用户提供其 AD/LDAP 凭证。 然后使用与该 AD/LDAP 用户关联的一个或多个策略生成新的访问密钥对。

mc idp ldap accesskey create-with-login https://minio.example.net/

该命令的语法如下:

mc [GLOBALFLAGS] idp ldap accesskey create-with-login        \
                                 URL                         \
                                 [--access-key <value>]      \
                                 [--secret-key <value>]      \
                                 [--policy <value>]          \
                                 [--name <value>]            \
                                 [--description <value>]     \
                                 [--expiry <value>]          \
                                 [--expiry-duration <value>]
  • URL 替换为已配置 AD/LDAP 集成的 MinIO 部署的 FQDN

  • 方括号 [] 表示可选参数。

  • 同一行中的参数彼此相互依赖。

  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

URL

mc-cmd

Required

已配置 AD/LDAP 集成的 MinIO 部署的 FQDN

例如:

mc idp ldap accesskey create-with-login https://minio.example.net
--access-key

mc-cmd

Optional

成功完成身份验证后要使用的访问密钥。 省略此项则由 MinIO 随机生成一个值。

访问密钥不能包含 =(等号)或 ,(逗号)字符。

需要同时指定 --secret-key

--secret-key

mc-cmd

Optional

成功完成身份验证后要使用的 secret key。 省略此项则由 MinIO 随机生成一个值。

需要同时指定 --access-key

--policy

mc-cmd

Optional

账户要使用的 JSON 格式 policy 文件路径。 该策略_不能_授予超出已认证 AD/LDAP 用户关联权限范围之外的额外权限。

省略此项则使用 AD/LDAP 用户关联策略。

--name

mc-cmd

Optional

为创建的访问密钥指定一个便于识别的名称。

--description

mc-cmd

Optional

为服务账户创建描述。 例如,你可以说明该访问密钥存在的原因。

--expiry-duration

mc-cmd

Optional

访问密钥对保持可用的时长,格式为 #d#h#s

例如,7d24h5d12h30s 都是有效字符串。

--expiry 互斥。

--expiry

mc-cmd

Optional

访问密钥的过期日期。 以 YYYY-MM-DD 格式输入日期。

例如,要让凭证在 2024 年 12 月 31 日后过期,输入 2024-12-31

--expiry-duration 互斥。

全局标志

此命令支持 全局标志 中的任意选项。

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

示例

为已认证用户创建新的访问密钥对

以下命令为 minio 别名下当前已认证用户创建新的访问密钥对。 该命令会输出随机生成的 access key 和 secret key。

mc idp ldap accesskey create-with-login https://minio.example.net

使用自定义 access key 和 secret key 创建新的访问密钥对

以下命令为 minio 别名下当前已认证用户创建新的访问密钥对,其中 access key 和 secret key 都由你指定。

mc idp ldap accesskey create-with-login https://minio.example.net/ --access-key my-access-key-change-me --secret-key my-secret-key-change-me

创建 24 小时后过期的新访问密钥对

以下命令为 minio 别名下当前已认证用户创建新的访问密钥对。 该凭证会在 24 小时后过期。

该命令会输出随机生成的 access key 和 secret key。

mc idp ldap accesskey create-with-login https://minio.example.net --expiry-duration 24h

创建在指定日期后过期的新访问密钥对

以下命令为 minio 别名下当前已认证用户创建新的访问密钥对。 该凭证会在 2025 年 2 月 28 日后过期。

该命令会输出随机生成的 access key 和 secret key。

mc idp ldap accesskey create-with-login https://minio.example.net --expiry 2025-02-28

111 - mc idp ldap policy

说明

新增: RELEASE.2023-05-26T23-31-54Z

mc idp ldap policy 及其子命令替代 mc admin idp ldap policy

说明

mc idp ldap policy 命令用于显示策略与关联组或用户之间的映射关系。

mc idp ldap policy 命令仅支持 MinIO 部署。

mc idp ldap policy 命令包含以下子命令:

子命令

说明

mc idp ldap policy attach

mc idp ldap policy attach 命令将一个或多个策略附加到实体。

mc idp ldap policy detach

mc idp ldap policy detach 命令可从实体分离一个或多个策略。

mc idp ldap policy entities

mc idp ldap policy entities 命令显示用户、组和/或策略的映射关系列表。

112 - mc idp openid

说明

新增: RELEASE.2023-05-26T23-31-54Z

mc idp openid 及其子命令取代 mc admin idp openid

描述

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

设置 OpenID 连接 时,可通过定义配置项作为使用环境变量的替代方式。mc idp openid 命令仅支持 MinIO 部署。

说明

说明

MinIO OpenID 环境变量 会覆盖通过此命令修改或设置的对应配置项。

mc idp openid 命令包含以下子命令:

子命令 说明
mc idp openid add 创建 OpenID IDP 服务器配置。
mc idp openid update 修改现有 OpenID IDP 服务器配置。
mc idp openid rm 从部署中移除 OpenID IDP 服务器配置。
mc idp openid ls 输出部署中现有 OpenID 服务器配置列表。
mc idp openid info 显示指定 OpenID 服务器配置的详细信息。
mc idp openid enable 启用 OpenID 服务器配置。
mc idp openid disable 禁用 OpenID 服务器配置。

配置参数

mc idp openid 子命令支持配置参数。 这些参数定义服务器与 IAM 提供方的交互方式。

有关配置参数的更详细说明,请参阅 配置项文档

语法

add

mc-cmd

为 OpenID 提供方创建一组新的配置。

你可以多次运行该命令,以设置多个 OpenID 提供方。

添加多个 OpenID 提供方时,只能有一个是基于 JWT Claim 的提供方。 其余都必须是基于角色的提供方。

以下示例为 myminio 部署创建配置项,定义一个新的 test-config 用于 Dex 集成。

 mc idp openid add myminio test-config                                        \
    client_id=minio-client-app                                                \
    client_secret=minio-client-app-secret                                     \
    config_url="http://localhost:5556/dex/.well-known/openid-configuration"   \
    scopes="openid,groups"                                                    \
    redirect_uri="http://127.0.0.1:10000/oauth_callback"                      \
    role_policy="consoleAdmin"

命令语法如下:

mc [GLOBALFLAGS] idp openid add               \
                            ALIAS             \
                            [CFG_NAME]        \
                            [CFG_PARAM1]      \
                            [CFG_PARAM2]...
  • ALIAS 替换为要配置 OpenID 集成的 MinIO 部署 alias
  • CFG_NAME 替换为此配置的唯一字符串。 如果未指定,命令将创建默认配置值。
  • [CFG_PARAM#] 替换为各个 配置项 键值对,格式为 PARAMETER="value"

update

mc-cmd

修改 OpenID 提供方现有的一组配置。

以下示例修改 myminio 部署中 test-config 的两个配置项,该配置用于 Dex 集成。

mc idp openid update                      \
              myminio                     \
              test_config                 \
              scopes="openid,groups"      \
              role_policy="consoleAdmin"

命令语法如下:

mc [GLOBALFLAGS] idp openid update           \
                            ALIAS            \
                            [CFG_NAME]       \
                            [CFG_PARAM1]     \
                            [CFG_PARAM2]...
  • ALIAS 替换为要配置 OpenID 集成的 MinIO 部署 alias
  • CFG_NAME 替换为此配置的唯一字符串。 如果未指定,命令将更新默认配置。
  • [CFG_PARAM#] 替换为要更新的各个 配置项 键值对,格式为 PARAMETER="value"

rm, remove

mc-cmd

移除 OpenID 提供方现有的一组配置。

以下示例移除 myminio 部署中的 test-config 配置。

mc idp openid rm myminio test_config

命令语法如下:

mc [GLOBALFLAGS] idp openid rm          \
                            ALIAS       \
                            [CFG_NAME]
  • ALIAS 替换为要配置 OpenID 集成的 MinIO 部署 alias
  • CFG_NAME 替换为此配置的唯一字符串。 如果未指定,命令将移除默认配置。

ls, list

mc-cmd

输出 OpenID 提供方现有配置集列表。

以下示例输出为 myminio 部署定义的全部 OpenID 配置集列表。

mc idp openid ls myminio

命令语法如下:

mc [GLOBALFLAGS] idp openid ls ALIAS
  • ALIAS 替换为要列出 OpenID 集成的 MinIO 部署 alias

info

mc-cmd

输出 OpenID 提供方现有服务器配置集中定义的一组值。

以下示例输出 myminio 部署中 test_config 这组 OpenID 设置定义的配置项。

mc idp openid info myminio test_config

命令语法如下:

mc [GLOBALFLAGS] idp openid info        \
                            ALIAS       \
                            [CFG_NAME]
  • ALIAS 替换为要配置 OpenID 集成的 MinIO 部署 alias
  • CFG_NAME 替换为此配置的唯一字符串。 如果未指定,则显示默认服务器配置的信息。

enable

mc-cmd

开始使用 OpenID 提供方现有的一组配置。

以下示例启用 myminio 部署中定义为 test_config 的服务器配置。

mc idp openid enable       \
              myminio      \
              test_config

命令语法如下:

mc [GLOBALFLAGS] idp openid enable     \
                            ALIAS      \
                            [CFG_NAME]
  • ALIAS 替换为要配置 OpenID 集成的 MinIO 部署 alias
  • CFG_NAME 替换为此配置的唯一字符串。 如果未指定,命令将启用默认配置值。

disable

mc-cmd

停止使用 OpenID 提供方的一组配置。

以下示例禁用 myminio 部署中定义为 test_config 的服务器配置。

mc idp openid disable      \
              myminio      \
              test_config

命令语法如下:

mc [GLOBALFLAGS] idp openid disable       \
                            ALIAS         \
                            [CFG_NAME]
  • ALIAS 替换为要配置 OpenID 集成的 MinIO 部署 alias
  • CFG_NAME 替换为此配置的唯一字符串。 如果未指定,命令将禁用默认配置值。

全局标志

此命令支持 全局标志 中的任意选项。

113 - mc ilm

描述

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

使用这些命令可以:

  • 创建层
  • 创建 分层 规则
  • 管理存储桶中对象的 过期 规则

子命令

mc ilm 包含以下子命令:

子命令

描述

restore

mc ilm restore 命令会为归档在远程层上的对象创建一个临时副本。 默认情况下,该副本会在 1 天后自动过期。

rule

mc ilm rule 命令及其子命令用于配置 MinIO 生命周期管理中对象在各存储层之间转换所使用的规则。

tier

mc ilm tier 命令及其子命令用于为 MinIO 的 生命周期管理:对象过渡(“分层”) 配置受支持的远程 S3 兼容服务。

114 - mc legalhold

描述

mc legalhold 命令用于为一个或多个对象设置、移除或获取 object legal hold (WORM) 配置。

子命令

mc legalhold 包含以下子命令:

子命令

描述

clear

mc legalhold clear 命令会移除一个或多个对象当前的 legal hold 设置。

info

mc legalhold info 命令返回一个或多个对象的当前 legal hold 设置。

set

mc legalhold set 命令可在单个或多个对象上启用 legal hold 的一次写入多次读取(WORM)对象锁定。

115 - mc license

说明

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

子命令

mc license 包含以下子命令:

子命令

说明

info

mc license info 命令用于显示 MinIO 部署的许可证状态信息。 具体来说,用于确认该部署使用的是 AGPLv3 开源许可证,还是 MinIO Commercial License

register

mc license register 命令会将你的部署与 MinIO SUBNET 账户关联。

update

使用 mc license update 命令为部署替换许可证密钥。

116 - mc ls

语法

mc ls 命令用于列出 MinIO 或其他 S3 兼容服务上的存储桶和对象。

你也可以对本地文件系统使用 mc ls,生成与 ls 命令类似的结果。

以下命令列出 myminio MinIO 部署中 mydata 存储桶内的所有对象 对象版本:

mc ls --recursive --versions myminio/mydata

输出类似如下:

[2022-11-08 11:30:24 PST]    52MB  STANDARD log-data.csv
[2022-11-09 12:20:18 PST]    120MB WARM videos/event-2022-11-09.mp4
  • STANDARD 表示存储在 MinIO 部署上的对象
  • WARM 表示存储在同名远端层中的对象
  • videos/ 表示对象的前缀

该命令语法如下:

mc [GLOBALFLAGS] ls              \
                 [--incomplete]  \
                 [--recursive]   \
                 [--rewind]      \
                 [--versions]    \
                 [--summarize]   \
                 ALIAS [ALIAS ...]
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

必需 要复制的一个或多个对象。

对于列出 MinIO 上的对象, 指定该对象的 alias 和完整路径 (例如存储桶和对象路径)。例如:

mc ls play/mybucket/object.txt

对于列出本地文件系统上的对象,指定该对象的完整路径。 例如:

mc ls ~/mydata/object.txt

如果你在 ALIAS 中指定的是目录或存储桶,则还必须 指定 --recursive,以递归列出该目录或存储桶的内容。 如果省略 --recursive 参数,ls 仅列出指定目录或存储桶 顶层的对象。

incomplete, -I

mc-cmd

可选 返回指定 ALIAS 存储桶上的所有未完成上传。

--recursive, r

mc-cmd

可选 递归列出 ALIAS 中各存储桶或目录的内容。

--rewind

mc-cmd

Optional

指示 mc ls 仅对指定时间点存在的对象版本执行操作。

  • 如需回溯到过去的特定日期,请将该日期指定为 ISO8601 格式的时间戳。 例如:--rewind "2020.03.24T10:00"
  • 如需按时间长度回溯,请将该时长指定为 #d#hh#mm#ss 格式的字符串。 例如:--rewind "1d2hh3mm4ss"

--rewind 要求指定的 ALIAS 指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用 mc version 启用或禁用存储桶版本控制。

同时使用 --rewind--versions,可显示在特定时间点存在的对象版本。

--versions

mc-cmd

Optional

指示 mc ls 对存储桶中存在的所有对象版本执行操作。

--versions 要求指定的 ALIAS 指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用 mc version 启用或禁用存储桶版本控制。

同时使用 --versions--rewind,可显示在特定时间点存在的对象版本。

--summarize

mc-cmd

可选 显示指定 ALIAS 路径的汇总信息。

全局标志

此命令支持 全局标志 中的任意选项。

示例

列出存储桶内容

使用 mc ls 列出存储桶内容:

mc ls [--recursive] ALIAS/PATH
  • ALIAS 替换为 S3 兼容主机的 alias

  • PATH 替换为 S3 兼容主机上 存储桶的路径。

    如果指定的是 S3 根路径(仅 ALIAS),请包含 --recursive 选项。

列出对象版本

使用 mc ls --versions 列出对象的所有版本:

mc ls --versions ALIAS/PATH
  • ALIAS 替换为 S3 兼容主机的 alias
  • PATH 替换为 S3 兼容主机上 存储桶或对象的路径。
说明

需要版本控制

要使用此功能,mc ls 需要启用 存储桶版本控制。 请使用 mc version 在存储桶上启用版本控制。

列出某个时间点的存储桶内容

使用 mc ls --versions 列出对象的所有版本:

mc ls --rewind DURATION ALIAS/PATH
  • ALIAS 替换为 S3 兼容主机的 alias
  • PATH 替换为 S3 兼容主机上 存储桶或对象的路径。
  • DURATION 替换为过去的某个时间点, 命令将在该时间点返回对象。例如,指定 30d 以返回相对于当前日期 往前 30 天的对象版本。
说明

需要版本控制

要使用此功能,mc ls 需要启用 存储桶版本控制。 请使用 mc version 在存储桶上启用版本控制。

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

117 - mc mb

语法

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

你也可将 mc mb 用于本地文件系统,实现与 mkdir -p 命令行工具类似的效果。

以下命令会在 myminio MinIO 部署上创建一个新的存储桶 mydata。 该命令创建的存储桶将 启用对象锁定

mc mb --with-locks myminio/mydata

命令语法如下:

mc [GLOBALFLAGS] mb                   \
                 [--ignore-existing]  \
                 [--region "string"]  \
                 [--with-lock]        \
                 [--with-versioning]  \
                 ALIAS
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

要在其上创建新存储桶的 MinIO 或其他 S3 兼容服务。

如果要在 MinIO 上创建存储桶,请指定 alias 和存储桶名称。例如:

mc mb play/mybucket

如果要在本地文件系统上创建目录,请指定该目录的完整 路径。例如:

mc mb ~/mydata/mydir
--ignore-existing, p

mc-cmd

Optional

指示 mc mb 在存储桶或目录已存在时不执行任何操作。

--region

mc-cmd

Optional

指定创建存储桶的区域。 如果指定的 ALIAS 是文件系统目录,则该选项无效。

如果未指定,默认值为 us-east-1

--with-lock, l

mc-cmd

Optional

在指定存储桶上启用 对象锁定。 对象锁定要求并因此隐含启用对象版本控制。

警告

重要

只能 在创建存储桶时启用对象锁定。 未启用对象锁定创建的存储桶无法使用 存储桶生命周期管理存储桶对象锁定 功能。

--with-versioning

mc-cmd

Optional

在新存储桶上启用 对象版本控制。 启用版本控制后,默认情况下 MinIO 允许每个对象的版本数最多达到 Int64 最大值,即超过 9.2 quintillion。 可定义 对象过期 规则,清理不再需要的对象版本,例如按版本数量或版本日期删除。

存储桶复制站点复制 需要版本控制。 版本控制不隐含也不要求对象锁定。

全局标志

此命令支持 全局标志 中的任意选项。

示例

创建启用对象锁定的存储桶

使用 mc mb 在 S3 兼容主机上创建存储桶。 --with-lock 选项创建启用锁定的存储桶:

mc mb --with-lock ALIAS/BUCKET
  • ALIAS 替换为 S3 兼容主机的 alias
  • BUCKET 替换为要创建的存储桶。

在指定区域创建新存储桶

使用 mc mb 在 S3 兼容主机上创建存储桶。 --region 选项在目标区域创建该存储桶。

mc mb --region --region=us-west-2 myminio/mynewbucket

上述命令会在 us-west-2 区域中的 myminio 上创建新存储桶 mynewbucket

创建启用版本控制的新存储桶

mc mb --with-versioning myminio/myversionedbucket

上述命令会在 myminio alias 上创建新的存储桶 myversionedbucket。 新存储桶为桶内所有对象启用 对象版本控制

行为

每个部署的存储桶限制

MinIO 不限制你在单个部署上可创建的存储桶数量。 但作为通用指导,MinIO 建议每个部署的存储桶数量不超过 500,000。

非 MinIO S3 服务的存储桶限制

某些 S3 服务可能限制单个用户或账户可创建的存储桶数量。 例如,Amazon S3 将每个账户限制为 100 buckets。如果用户在目标 S3 服务上达到存储桶上限,mc mb 可能返回错误。

MinIO 对象存储部署不限制每个用户可创建的 存储桶数量。

在创建存储桶时启用对象锁定

MinIO 遵循 AWS S3 behavior, 要求你 必须 在创建存储桶时启用 对象锁定。 未启用对象锁定创建的存储桶 永远 无法启用对象保留或锁定。

启用存储桶锁定并 不会 设置任何对象锁定或保留配置。 建议将启用存储桶锁定作为标准实践。

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

118 - mc mirror

语法

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

说明

说明

mc mirror 仅同步当前对象,不包含任何版本信息或元数据。 若要同步对象的版本历史和元数据,可考虑对 bucket replication 使用 mc replicate,或对 site replication 使用 mc admin replicate

以下命令将本地文件系统目录中的内容同步到 myminio MinIO 部署上的 mydata 存储桶。

mc mirror --watch ~/mydata myminio/mydata

该命令会“监视”本地文件系统中新增或删除的文件,并将这些操作同步到 MinIO,直到显式终止。

mc mirror --watch 会把本地文件系统中发生变更的文件更新到 MinIO(参见 --overwrite)。 --watch 不会删除 MinIO 中本地文件系统不存在的其他文件(参见 --remove)。

命令语法如下:

mc [GLOBALFLAGS] mirror                            \
                 [--active-active]                 \
                 [--attr "string"]                 \
                 [--checksum "value"]              \
                 [--disable-multipart]             \
                 [--dry-run]                       \
                 [--enc-kms "string"]              \
                 [--enc-s3 "string"]               \
                 [--enc-c "string"]                \
                 [--exclude "string"]              \
                 [--exclude-bucket "string"]       \
                 [--exclude-storageclass "string"] \
                 [--limit-download string]         \
                 [--limit-upload string]           \
                 [--md5]                           \
                 [--monitoring-address "string"]   \
                 [--newer-than "string"]           \
                 [--older-than "string"]           \
                 [--overwrite]                     \
                 [--preserve]                      \
                 [--region "string"]               \
                 [--remove]                        \
                 [--retry]                         \
                 [--skip-errors]                   \
                 [--storage-class "string"]        \
                 [--summary]                       \
                 [--watch]                         \
                 SOURCE                            \
                 TARGET
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

SOURCE

mc-cmd

Required

要同步到 TARGET S3 主机的文件或对象。

对于 S3 兼容主机上的对象,请将对象路径指定为 ALIAS/PATH,其中:

  • ALIAS 是已配置 S3 兼容主机的 alias并且
  • PATH 是存储桶或对象路径。若指定存储桶,mc mirror 会同步该存储桶中的所有对象。
mc mirror [FLAGS] play/mybucket/ myminio/mybucket

对于文件系统中的文件,请指定文件或目录的完整文件系统路径:

mc mirror [FLAGS] ~/data/ myminio/mybucket

若指定的是目录,mc mirror 会同步该目录中的所有文件。

TARGET

mc-cmd

Required

mc mirror 用于同步 SOURCE 对象的目标存储桶完整路径。将 TARGET 指定为 ALIAS/PATH,其中:

  • ALIAS 是已配置 S3 兼容主机的 alias并且
  • PATH 是存储桶路径。
mc mirror SOURCE play/mybucket

mc mirror 在同步到 TARGET 存储桶时,会使用 SOURCE 中对象或文件的名称。

--active-active

mc-cmd

Optional

在两个站点之间建立 active-active 镜像活动。 必须在每个站点上重复执行该命令。

例如:

在站点 A 上,将 A 镜像到 B

mc mirror --active-active siteA siteB

在站点 B 上,将 B 镜像到 A

mc mirror --active-active siteB siteA
--attr

mc-cmd

Optional

为镜像对象添加自定义元数据。将键值对指定为 KEY=VALUE\;。 例如:--attr key1=value1\;key2=value2\;key3=value3

--checksum

mc-cmd

Optional

说明

新增: RELEASE.2024-10-02T08-27-28Z

为上传对象添加校验和。

有效值为: - MD5 - CRC32 - CRC32C - SHA1 - SHA256

该标志要求服务端支持 trailing headers,并适用于 AWS 或 MinIO 目标。

--disable-multipart

mc-cmd

Optional

为本次同步会话禁用 multipart 上传。

--dry-run

mc-cmd

Optional

执行一次模拟镜像操作。 使用该操作可测试 mc mirror 是否只会镜像预期的对象或存储桶。

--enc-kms

mc-cmd

使用客户端管理的密钥,通过服务端 SSE-KMS 加密 对对象进行加密或解密。

该参数接受格式为 KEY=VALUE 的键值对。

KEY

对象的完整路径,格式为 alias/bucket/path/object.ext

你也可以只指定顶层路径,以便对该路径下的所有操作使用同一个加密密钥。

VALUE

指定外部 KMS 上已有的数据密钥。

关于如何创建数据密钥,请参见 mc admin kms key create 参考文档。

例如:

--enc-kms "myminio/mybucket/prefix/object.obj=mybucketencryptionkey"

你可以通过重复该参数来指定多个加密密钥。

也可以指定某个前缀路径,对该路径下所有匹配对象应用加密:

--enc-kms "myminio/mybucket/prefix/=mybucketencryptionkey"
--enc-s3

mc-cmd

Optional

使用 KMS 管理的密钥,通过服务端 SSE-S3 加密 对对象进行加密或解密。 指定对象的完整路径,格式为 alias/bucket/prefix/object

例如:

--enc-s3 "myminio/mybucket/prefix/object.obj"

你可以多次指定该参数,以表示不同的待加密对象:

--enc-s3 "myminio/mybucket/foo/fooobject.obj" --enc-s3 "myminio/mybucket/bar/barobject.obj"

也可以指定某个前缀路径,对该路径下所有匹配对象应用加密:

--enc-s3 "myminio/mybucket/foo"
--enc-c

mc-cmd

Optional

使用客户端管理的密钥,通过服务端 SSE-C 加密 对对象进行加密或解密。

该参数接受格式为 KEY=VALUE 的键值对。

KEY

对象的完整路径,格式为 alias/bucket/path/object.ext

你也可以只指定顶层路径,以便对该路径下的所有操作使用同一个加密密钥。

VALUE

指定用于 SSE-C 加密的密钥,可以是 32 字节 RawBase64 编码密钥, 也可以是 64 字节十六进制编码密钥。

Raw Base64 编码 不接受= 填充的密钥。 请去掉填充,或使用支持 RAW 格式的 Base64 编码器。

  • KEY - 对象的完整路径,格式为 alias/bucket/path/object
  • VALUE - 用于加密对象的 32 字节 RAW Base64 编码数据密钥。

例如:

# RawBase64-Encoded string "mybucket32byteencryptionkeyssec"
--enc-c "myminio/mybucket/prefix/object.obj=bXlidWNrZXQzMmJ5dGVlbmNyeXB0aW9ua2V5c3NlYwo"

你可以通过重复该参数来指定多个加密密钥。

也可以指定某个前缀路径,对该路径下所有匹配对象应用加密:

--enc-c "myminio/mybucket/prefix/=bXlidWNrZXQzMmJ5dGVlbmNyeXB0aW9ua2V5c3NlYwo"
说明

说明

MinIO 强烈不建议在生产负载中使用 SSE-C 加密。 请改用 --enc-kms 参数启用 SSE-KMS,或使用 --enc-s3 参数启用 SSE-S3。

--exclude

mc-cmd

Optional

排除 SOURCE 路径中与指定对象 name pattern 匹配的对象。

--exclude-bucket

mc-cmd

Optional

说明

新增: mc

RELEASE.2024-03-03T00-13-08Z

排除 SOURCE 路径中与指定存储桶 name pattern 匹配的存储桶。

--exclude-storageclass

mc-cmd

Optional

排除 SOURCE 上具有指定存储类的对象。 可在同一命令中多次使用该标志,以排除多个存储类中的对象。

可用于排除需要重新水化或恢复的存储类对象,例如从 AWS S3 存储桶迁移时,某些对象使用 GLACIERDEEP_ARCHIVE 存储类。

--limit-download

mc-cmd

Optional

将客户端侧下载速率限制为不超过指定值,单位可以是 KiB/s、MiB/s 或 GiB/s。 这只影响下载到运行 MinIO Client 的本地设备的速度。 有效单位包括:

  • B 表示字节
  • K 表示千字节
  • M 表示兆字节
  • G 表示吉字节
  • T 表示太字节
  • Ki 表示二进制千字节
  • Mi 表示二进制兆字节
  • Gi 表示二进制吉字节
  • Ti 表示二进制太字节

例如,如需将下载速率限制为不超过 1 GiB/s,请使用以下命令:

--limit-download 1G

如果未指定,MinIO 将使用不受限制的下载速率。

--limit-upload

mc-cmd

Optional

将客户端侧上传速率限制为不超过指定值,单位可以是 KiB/s、MiB/s 或 GiB/s。 这只影响从运行 MinIO Client 的本地设备发起的上传速度。 有效单位包括:

  • B 表示字节
  • K 表示千字节
  • M 表示兆字节
  • G 表示吉字节
  • T 表示太字节
  • Ki 表示二进制千字节
  • Mi 表示二进制兆字节
  • Gi 表示二进制吉字节
  • Ti 表示二进制太字节

例如,如需将上传速率限制为不超过 1 GiB/s,请使用以下命令:

--limit-upload 1G

如果未指定,MinIO 将使用不受限制的上传速率。

--md5

mc-cmd

Optional

强制所有上传计算 MD5 校验和。

--monitoring-address

mc-cmd

Optional

创建一个用于监控镜像活动的 Prometheus endpoint。 指定创建抓取 endpoint 的本地网络适配器和端口地址。 默认为 localhost:8081)。

--newer-than

mc-cmd

Optional

仅镜像比指定天数更新的对象。 以 #d#hh#mm#ss 格式指定字符串 例如:--newer-than 1d2hh3mm4ss

--older-than

mc-cmd

Optional

仅镜像早于指定时间阈值的对象。 以 #d#hh#mm#ss 格式指定字符串。 例如:--older-than 1d2hh3mm4ss

默认为 0(所有对象)。

--overwrite

mc-cmd

Optional

覆盖 TARGET 上的对象。

例如,设想一个正在运行的 mc mirror --overwrite,将内容从 Source 同步到 Destination。

如果 Source 上的对象发生变更,mc mirror --overwrite 会同步并覆盖 Destination 上的同名文件。

如果不使用 --overwrite,当对象已存在于 Destination 时,镜像进程将无法同步该对象。 mc mirror 会记录错误并继续同步其他对象。

--preserve, a

mc-cmd

Optional

TARGET 上保留 SOURCE 的文件系统属性和存储桶策略规则。

--region

mc-cmd

Optional

在目标端创建新存储桶时,指定 string 区域。

默认为 "us-east-1"

--remove

mc-cmd

Optional

删除 Target 上 Source 中不存在的对象。

使用 --remove 标志可使 Source 和 Target 拥有相同的对象列表。

例如,Source 上存在对象 A、B、C。 Target 上存在对象 C、D、E。

运行 mc mirror --remove 时,对象 A 和 B 会同步到 Target,对象 D 和 E 会从 Target 删除。 由于对象 C 在两端都已存在,不会有任何内容从 Source 移动到 Target。

操作完成后,Source 和 Target 上都只存在对象 A、B、C。

mc mirror --remove 不会校验对象 C 在 Source 和 Target 上的内容是否一致,只检查两端是否都存在名为 C 的对象。 若要确保 Source 与 Target 上对象的名称和内容都一致,请使用 --overwrite--watch

说明

变更: RELEASE.2023-05-04T18-10-16Z

如果目标路径是不存在的本地文件系统目录,mc mirror --remove 会返回错误。

在早期版本中,如果 directory 不存在,指定 /path/to/directory 会导致删除 /path/to 文件夹。

--retry

mc-cmd

Optional

镜像过程中出现错误时,对每个出错对象执行重试。

--storage-class, sc

mc-cmd

Optional

TARGET 上的新对象设置存储类。

有关 S3 存储类的更多信息,请参阅 Amazon 文档:Storage Classes

--skip-errors

mc-cmd

Optional

说明

新增: mc

RELEASE.2024-01-28T16-23-14Z

跳过镜像过程中产生错误的对象。

--summary

mc-cmd

Optional

完成后输出已同步数据的摘要。

--watch, w

mc-cmd

Optional

使用 --watch 标志可将对象从 Source 镜像到 Target,且 Target 也可以包含 Source 中不存在的其他对象。

  • --watch 会持续将文件从 Source 同步到 Target,直到显式终止
  • Target 可以包含 Source 中不存在的文件
  • 若 Source 中存在同名对象,--watch 会覆盖 Target 上的对象,行为类似 --overwrite

默认为 0(所有对象)。

例如,被监视的 Source 上存在对象 A 和 B。 被监视的 Target 上存在对象 A、B、C。

某客户端向 Source 写入对象 D,并删除对象 B。

操作后,Source 上存在对象 A 和 D。 Target 上存在对象 A、C、D。

全局标志

此命令支持 全局标志 中的任意选项。

示例

将本地目录镜像到 S3 兼容主机

使用 mc mirror 将文件从文件系统镜像到 S3 主机:

mc mirror FILEPATH ALIAS/PATH
  • FILEPATH 替换为要镜像目录的完整文件路径。
  • ALIAS 替换为已配置 S3 兼容主机的 alias
  • PATH 替换为目标存储桶。

持续将本地目录镜像到 S3 兼容主机

mc mirror--watch 一起使用,可持续将文件从文件系统镜像到 S3 兼容主机;文件系统中新增或删除的对象会在主机端同步新增或删除:

mc mirror --watch FILEPATH ALIAS/PATH
  • FILEPATH 替换为要镜像目录的完整文件路径。
  • ALIAS 替换为已配置 S3 兼容主机的 alias
  • PATH 替换为目标存储桶。

持续将 S3 存储桶镜像到 S3 兼容主机

mc mirror--watch 一起使用,可持续将一个 S3 兼容主机上某个存储桶中的对象镜像到另一个 S3 兼容主机;存储桶中新增或删除的对象会同步到目标主机。

mc mirror --watch SRCALIAS/SRCPATH TGTALIAS/TGTPATH
  • SRCALIAS 替换为已配置 S3 兼容主机的 alias
  • SRCPATH 替换为要镜像的存储桶。
  • TGTALIAS 替换为已配置 S3 兼容主机的 alias
  • TGTPATH 替换为目标存储桶。

将对象从 AWS S3 镜像到 MinIO,并跳过 GLACIER 中的对象

mc mirror--exclude-storageclass 一起使用,可将对象从 AWS S3 镜像到 MinIO,同时不镜像 GLACIER 或 DEEP_ARCHIVE 存储中的对象。

mc mirror --exclude-storageclass GLACIER  \
   --exclude-storageclass DEEP_ARCHIVE SRCALIAS/SRCPATH TGALIAS/TGPATH

行为

对象失败时镜像继续执行

如果目标上存在同名对象,MinIO 会为重复对象输出错误。 发生错误后,mc mirror 会继续将其他对象从源端镜像到目标端。

对象删除时 MinIO 会裁剪空前缀

mc mirror --watch 命令会持续同步源端和目标端中新增与删除的对象。 这也包括在源端删除对象时,自动删除目标端对应对象。

如需将源端更新的对象同步更新到目标端,请使用 –overwrite。 如需删除目标端中源端不存在的对象,请使用 –remove

mc mirror --watch 依赖 mc 的删除 API 来移除对象。在删除存储桶前缀中的最后一个对象时, mc 还会递归删除直到存储桶根为止的每一个空前缀。mc 只会对在对象写入 操作过程中 隐式 创建的前缀执行这种递归删除,也就是说,该前缀不是通过 mc mb 这类显式目录创建命令创建的。

例如,假设存储桶 photos 中有以下对象前缀:

  • photos/2021/january/myphoto.jpg
  • photos/2021/february/myotherphoto.jpg
  • photos/NYE21/NewYears.jpg

photos/NYE21唯一 通过 mc mb 显式创建的前缀。其余所有前缀 都是在向该前缀写入对象时 隐式 创建的。

如果某个 mc 命令删除了 myphoto.jpg,删除 API 会自动裁剪空的 /january 前缀。如果后续某个 mc 命令又删除了 myotherphoto.jpg, 删除 API 会自动裁剪 /february 前缀,以及此时已经为空的 /2021 前缀。 如果某个 mc 命令删除了 NewYears.jpg,由于 /NYE21显式 创建的,因此该前缀会保留不变。

如果将 mc mirror --watch 用于文件系统操作,mc 也会采用相同行为,递归裁剪直到 根目录的所有空目录。不过,mc 的删除 API 无法区分某个目录路径是显式 创建的,还是隐式创建的。如果 mc mirror --watch 删除了某个文件系统路径上的最后一个对象, mc 会在删除过程中递归删除从该路径向上直到根目录的所有空目录。

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

119 - mc mv

语法

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

你也可以对本地文件系统使用 mc mv,以获得与 mv 命令行工具类似的结果。

以下命令将对象从 mydata 存储桶移动到 myminio MinIO 部署上的 archive 存储桶:

mc mv --recursive myminio/mydata myminio/archive

该命令语法如下:

mc [GLOBALFLAGS] mv         \
[--attr "string"]           \
[--disable-multipart]       \
[--enc-kms "string"]        \
[--enc-s3 "string"]         \
[--enc-c "string"]          \
[--limit-download string]   \
[--limit-upload string]     \
[--newer-than "string"]     \
[--older-than "string"]     \
[--preserve]                \
[--recursive]               \
[--storage-class "string"]  \
SOURCE [SOURCE...]          \
TARGET
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

SOURCE

mc-cmd

:required:

mc-cmd

要移动的一个或多个对象。

若要从 MinIO 存储桶移动对象,请指定 alias 以及对象的完整路径(例如存储桶和对象路径)。例如:

mc mv play/mybucket/object.txt play/myotherbucket/object.txt

若要从本地文件系统移动对象,请指定该对象的完整路径。例如:

mc mv ~/mydata/object.txt play/mybucket/object.txt

指定多个 SOURCE 路径可将多个对象移动到指定的 TARGETmc rm最后一个 指定的 alias 或文件系统路径 视为 TARGET。例如:

mc mv ~/mydata/object.txt play/mydata/otherobject.txt myminio/mydata

如果你为 SOURCE 指定的是目录或存储桶, 则还必须指定 --recursive 以递归移动该目录内容。 如果省略 --recursive 参数,mv 仅会移动 指定目录或存储桶顶层中的对象。

TARGET

mc-cmd

Required

命令会将指定 SOURCE 的对象移动到该存储桶, 这里填写该存储桶的完整路径。请将已配置 S3 服务的 alias 作为 TARGET 路径前缀。

若要从 MinIO 移动对象,请指定 alias 以及对象的完整路径(例如存储桶和对象路径)。例如:

mc mv play/mybucket/object.txt play/myotherbucket/object.txt

若要从本地文件系统移动对象,请指定该对象的完整路径。例如:

mc mv ~/mydata/object.txt play/mybucket/object.txt

TARGET 对象名可以不同于 SOURCE, 以便在移动操作中同时“重命名”对象。

如果以 --recursive 选项运行 mc mvmc mv 会将 TARGET 视为 SOURCE 下所有对象的存储桶前缀。

--attr

mc-cmd

Optional

为对象添加自定义元数据。将键值对指定为 KEY=VALUE\;。 例如,--attr key1=value1\;key2=value2\;key3=value3

--disable-multipart

mc-cmd

Optional

禁用 multipart upload 功能。

Multipart upload 会将对象拆分为多个独立分片。 每个分片可独立上传,且顺序不限。 如果任一分片上传失败,MinIO 会仅重试该分片而不影响其他分片。 上传完成后,这些分片会合并还原为原始对象。

MinIO 建议对大于 100 MB 的对象使用 multipart upload。 有关 multipart upload 的更多信息,请参阅 Amazon S3 documentation

--enc-kms

mc-cmd

使用客户端管理的密钥,通过服务端 SSE-KMS 加密 对对象进行加密或解密。

该参数接受格式为 KEY=VALUE 的键值对。

KEY

对象的完整路径,格式为 alias/bucket/path/object.ext

你也可以只指定顶层路径,以便对该路径下的所有操作使用同一个加密密钥。

VALUE

指定外部 KMS 上已有的数据密钥。

关于如何创建数据密钥,请参见 mc admin kms key create 参考文档。

例如:

--enc-kms "myminio/mybucket/prefix/object.obj=mybucketencryptionkey"

你可以通过重复该参数来指定多个加密密钥。

也可以指定某个前缀路径,对该路径下所有匹配对象应用加密:

--enc-kms "myminio/mybucket/prefix/=mybucketencryptionkey"
--enc-s3

mc-cmd

Optional

使用 KMS 管理的密钥,通过服务端 SSE-S3 加密 对对象进行加密或解密。 指定对象的完整路径,格式为 alias/bucket/prefix/object

例如:

--enc-s3 "myminio/mybucket/prefix/object.obj"

你可以多次指定该参数,以表示不同的待加密对象:

--enc-s3 "myminio/mybucket/foo/fooobject.obj" --enc-s3 "myminio/mybucket/bar/barobject.obj"

也可以指定某个前缀路径,对该路径下所有匹配对象应用加密:

--enc-s3 "myminio/mybucket/foo"
--enc-c

mc-cmd

Optional

使用客户端管理的密钥,通过服务端 SSE-C 加密 对对象进行加密或解密。

该参数接受格式为 KEY=VALUE 的键值对。

KEY

对象的完整路径,格式为 alias/bucket/path/object.ext

你也可以只指定顶层路径,以便对该路径下的所有操作使用同一个加密密钥。

VALUE

指定用于 SSE-C 加密的密钥,可以是 32 字节 RawBase64 编码密钥, 也可以是 64 字节十六进制编码密钥。

Raw Base64 编码 不接受= 填充的密钥。 请去掉填充,或使用支持 RAW 格式的 Base64 编码器。

  • KEY - 对象的完整路径,格式为 alias/bucket/path/object
  • VALUE - 用于加密对象的 32 字节 RAW Base64 编码数据密钥。

例如:

# RawBase64-Encoded string "mybucket32byteencryptionkeyssec"
--enc-c "myminio/mybucket/prefix/object.obj=bXlidWNrZXQzMmJ5dGVlbmNyeXB0aW9ua2V5c3NlYwo"

你可以通过重复该参数来指定多个加密密钥。

也可以指定某个前缀路径,对该路径下所有匹配对象应用加密:

--enc-c "myminio/mybucket/prefix/=bXlidWNrZXQzMmJ5dGVlbmNyeXB0aW9ua2V5c3NlYwo"
说明

说明

MinIO 强烈不建议在生产负载中使用 SSE-C 加密。 请改用 --enc-kms 参数启用 SSE-KMS,或使用 --enc-s3 参数启用 SSE-S3。

--limit-download

mc-cmd

Optional

将客户端侧下载速率限制为不超过指定值,单位可以是 KiB/s、MiB/s 或 GiB/s。 这只影响下载到运行 MinIO Client 的本地设备的速度。 有效单位包括:

  • B 表示字节
  • K 表示千字节
  • M 表示兆字节
  • G 表示吉字节
  • T 表示太字节
  • Ki 表示二进制千字节
  • Mi 表示二进制兆字节
  • Gi 表示二进制吉字节
  • Ti 表示二进制太字节

例如,如需将下载速率限制为不超过 1 GiB/s,请使用以下命令:

--limit-download 1G

如果未指定,MinIO 将使用不受限制的下载速率。

--limit-upload

mc-cmd

Optional

将客户端侧上传速率限制为不超过指定值,单位可以是 KiB/s、MiB/s 或 GiB/s。 这只影响从运行 MinIO Client 的本地设备发起的上传速度。 有效单位包括:

  • B 表示字节
  • K 表示千字节
  • M 表示兆字节
  • G 表示吉字节
  • T 表示太字节
  • Ki 表示二进制千字节
  • Mi 表示二进制兆字节
  • Gi 表示二进制吉字节
  • Ti 表示二进制太字节

例如,如需将上传速率限制为不超过 1 GiB/s,请使用以下命令:

--limit-upload 1G

如果未指定,MinIO 将使用不受限制的上传速率。

--newer-than

mc-cmd

Optional

删除比指定天数更新的对象。指定格式为 ##d#hh#mm#ss 的字符串。例如: --newer-than 1d2hh3mm4ss

默认为 0(所有对象)。

--older-than

mc-cmd

Optional

删除早于指定时间限制的对象。指定格式为 #d#hh#mm#ss 的字符串。例如:--older-than 1d2hh3mm4ss

默认为 0(所有对象)。

--preserve, a

mc-cmd

Optional

保留 SOURCE 目录、存储桶和对象在文件系统上的属性 以及存储桶策略规则,并应用到 TARGET 存储桶。

--recursive, r

mc-cmd

Optional

将每个 SOURCE 存储桶或目录的内容 递归移动到 TARGET 存储桶。

--storage-class

mc-cmd

Optional

TARGET 上的新对象设置存储类别。

有关 S3 storage class 的更多信息,请参阅 Amazon 文档 Storage Classes

全局标志

此命令支持 全局标志 中的任意选项。

示例

将文件从文件系统移动到 S3-Compatible Host

mc mv [--recursive] FILEPATH ALIAS/PATH
  • FILEPATH 替换为要移动文件的完整文件路径。

    如果指定的是目录路径,请包含 --recursive 标志。

    mc mv 在成功移动到目标后,会从源中 移除 这些文件。

  • ALIAS 替换为已配置 S3-compatible host 的 alias

  • PATH 替换为目标存储桶。

将文件从文件系统移动到 S3-Compatible Host 并附带自定义元数据

使用带 --attr 选项的 mc mv, 可为文件设置自定义属性。

mc mv --attr "ATTRIBUTES" FILEPATH ALIAS/PATH
  • FILEPATH 替换为要移动文件的完整文件路径。 mc mv 在成功移动到目标后,会从源中 移除 该文件。
  • ALIAS 替换为已配置 S3-compatible host 的 alias
  • PATH 替换为目标存储桶。
  • ATTRIBUTES 替换为一个或多个逗号分隔的 键值对 KEY=VALUE。每个键值对表示一个属性键及其值。

在 S3-Compatible 服务之间移动存储桶

 mc mv --recursive SRCALIAS/SRCPATH TGTALIAS/TGTPATH
  • SRCALIAS 替换为已配置 S3-compatible host 的 alias
  • SRCPATH 替换为存储桶路径。 mc mv 在成功移动到目标后,会从源中 移除 该存储桶及其内容。
  • TGTALIAS 替换为已配置 S3-compatible host 的 alias
  • TGTPATH 替换为存储桶路径。

将文件移动到 S3-Compatible Host 并指定存储类别

使用带 --storage-class 选项的 mc mv, 可在目标 S3-compatible host 上设置存储类别。

mc mv --storage-class CLASS FILEPATH ALIAS/PATH
  • CLASS 替换为要 关联到文件的存储类别。

  • FILEPATH 替换为要移动文件的完整文件路径。 mc mv 在成功移动到目标后,会从源中 移除 该文件。

  • ALIAS 替换为已配置 S3-compatible host 的 alias

  • PATH 替换为目标存储桶。

  • ATTRIBUTES 替换为一个或多个逗号分隔的 键值对 KEY=VALUE。每个键值对表示一个属性键及其值。

    mc mv –storage-class REDUCED_REDUNDANCY myobject.txt play/mybucket

行为

移动时的对象名称

如果未显式指定目标对象名,在将对象移动到 TARGET 时,MinIO 会使用 SOURCE 的对象名。

你可以在相同对象路径下,为 TARGET 指定不同的对象名,以在移动时“重命名”对象。例如:

mc mv play/mybucket/object.txt play/mybucket/myobject.txt

对于递归移动操作(mc mv --recursive),MinIO 会将 TARGET 路径视为 SOURCE 上对象的前缀。

校验和验证

mc mv 使用 MD5SUM 校验和验证所有到对象存储的移动操作。

MinIO 在对象删除时会裁剪空前缀

mc mv 依赖 mc 的删除 API 来移除对象。在删除存储桶前缀中的最后一个对象时, mc 还会递归删除直到存储桶根为止的每一个空前缀。mc 只会对在对象写入 操作过程中 隐式 创建的前缀执行这种递归删除,也就是说,该前缀不是通过 mc mb 这类显式目录创建命令创建的。

例如,假设存储桶 photos 中有以下对象前缀:

  • photos/2021/january/myphoto.jpg
  • photos/2021/february/myotherphoto.jpg
  • photos/NYE21/NewYears.jpg

photos/NYE21唯一 通过 mc mb 显式创建的前缀。其余所有前缀 都是在向该前缀写入对象时 隐式 创建的。

如果某个 mc 命令删除了 myphoto.jpg,删除 API 会自动裁剪空的 /january 前缀。如果后续某个 mc 命令又删除了 myotherphoto.jpg, 删除 API 会自动裁剪 /february 前缀,以及此时已经为空的 /2021 前缀。 如果某个 mc 命令删除了 NewYears.jpg,由于 /NYE21显式 创建的,因此该前缀会保留不变。

如果将 mc mv 用于文件系统操作,mc 也会采用相同行为,递归裁剪直到 根目录的所有空目录。不过,mc 的删除 API 无法区分某个目录路径是显式 创建的,还是隐式创建的。如果 mc mv 删除了某个文件系统路径上的最后一个对象, mc 会在删除过程中递归删除从该路径向上直到根目录的所有空目录。

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

120 - mc od

语法

mc od 命令将本地文件按指定的分片数量与分片大小复制到远程位置。 该命令会输出上传该文件所耗费的时间。

使用 mc od 可模拟 Linux dd 命令的功能。

以下命令将文件的 200MiB 上传到存储桶中,分为 5 个 40MiB 的分片。 输出会显示上传结果,包括完成上传所用的时长。

mc od if=file.zip of=myminio/mybucket/file.zip size=40MiB parts=5

如果传入 --json 全局参数,命令输出类似如下:

{
  "source": "home/user/file.zip"
  "target": "myminio/mybucket/file.zip"
  "partSize": 41943040
  "totalSize": 209715200
  "parts": 5
  "elapsed": "314ms"
}

命令语法如下:

mc [GLOBALFLAGS] od                                            \
                 if=<path of source file to upload>            \
                 of=<target MinIO path to upload to>           \
                 [size=<size of file>]                         \
                 [parts=<number of parts to split file into>]  \
                 [skip=<number of parts to skip>]
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

if

mc-cmd

Required

用于上传的源对象路径。 使用相对于当前位置的完整路径。

mc od if=file.zip of=myminio/mybucket/file.zip
of

mc-cmd

Required

上传对象的完整目标路径。

size

mc-cmd

Optional

文件上传时每个分片的大小。 如未指定,MinIO 会根据源流确定分片大小。

parts

mc-cmd

Optional

上传时将对象拆分成的分片数量。 如未指定,MinIO 会根据源流大小确定分片数量。

skip

mc-cmd

Optional

上传过程中要跳过的文件分片数量。 例如,可使用该选项仅上传对象的一部分分片,以测试一个大文件(分片较多)的上传速度。

全局参数

此命令支持 全局标志 中的任意选项。

示例

以 40MiB 分片上传完整文件

使用 mc od 可按指定大小的一组分片将文件上传到 MinIO。 size 选项用于指定期望的分片大小。

mc od if=file.zip of=myminio/mybucket/file.zip size=40MiB
  • myminio/mybucket/file.zip 替换为要上传的对象或文件流路径。
  • size 替换为期望的对象分片大小。

MinIO 会检查源文件并将其拆分为所需数量的分片,确保没有任何分片超过指定的 40MiB 分片大小。

上传文件的前五个 40 MiB 分片

使用 mc od 可按指定分片大小,将文件的部分分片上传到 MinIO。 size 选项用于指定期望的分片大小。 parts 选项用于指定该对象要使用的总分片数。

mc od if=file.zip of=myminio/mybucket/file.zip size=40MiB parts=5
  • myminio/mybucket/file.zip 替换为要上传的对象或文件流路径。
  • size 替换为期望的对象分片大小。
  • parts 替换为该对象期望使用的分片数。

在该命令示例中,如果源对象流大于 200MiB(40MiB × 5 个分片),则仅上传文件的前 200MiB。

警告

重要

以这种方式使用该命令可能无法上传对象的全部内容。

将完整文件分 5 个分片上传

将源文件拆分为指定数量的分片,然后把文件的所有分片上传到 MinIO 目标位置。

mc od if=file.zip of=myminio/mybucket/file.zip parts=5

上述命令会将源文件均分为五个分片,然后上传这些分片。

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

121 - mc ping

语法

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

以下命令向目标发送请求,并输出响应的最小、最大、平均与往返时间,以及处理请求时遇到的错误数量。

mc ping play --count 5

该命令对 alias play 对应的部署执行五次 ping。 输出类似如下:

1: https://play.min.io   min=213.00ms   max=213.00ms   average=213.00ms   errors=0   roundtrip=213.00ms
2: https://play.min.io   min=67.15ms    max=213.00ms   average=140.07ms   errors=0   roundtrip=67.15ms
3: https://play.min.io   min=67.15ms    max=213.00ms   average=115.85ms   errors=0   roundtrip=67.41ms
4: https://play.min.io   min=61.26ms    max=213.00ms   average=102.20ms   errors=0   roundtrip=61.26ms
5: https://play.min.io   min=61.26ms    max=213.00ms   average=95.03ms    errors=0   roundtrip=66.36ms

该命令的语法如下:

mc [GLOBALFLAGS] ping                       \
                 TARGET                     \
                 [--count, -c value]        \
                 [--error-count, -e value]  \
                 [--interval, -i value]     \
                 [--distributed, -a value]
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

TARGET

mc-cmd

Required

命令应运行所在位置的 alias 或前缀完整路径。

--count

mc-cmd

Optional

指定执行检查的次数。

如果未指定,存活性检查会持续执行,直到手动停止。

--error-count

mc-cmd

Optional

指定在退出前允许出现的错误次数。

例如,要在出现五次错误后停止 ping 进程,请使用:

mc ping TARGET -e 5
--exit

mc-cmd

Optional

说明

新增: RELEASE.2023-05-30T22-41-38Z

在首次检查成功后退出。

--interval

mc-cmd

Optional

指定请求之间的等待时间(秒)。

默认情况下,命令在两次请求之间等待 1 秒。

--distributed

mc-cmd

Optional

向 MinIO 集群中的所有服务器发送请求。

说明

说明

在可直接访问每个节点或 Pod 的分布式部署中使用此选项。 当节点位于服务(例如负载均衡器)之后时,此标志不起作用。

全局标志

此命令支持 全局标志 中的任意选项。

示例

返回 5 次请求的延迟与存活性

以下命令对别名为 myminio 的部署发送五次存活性检查,输出每次检查结果后结束。

mc ping myminio --count 5

每次请求间隔 5 分钟持续发送存活性检查

以下命令持续发送存活性检查请求,且每次请求之间间隔 5 分钟(300 秒)。

mc ping myminio --interval 300

错误次数达到 20 后结束存活性检查

以下命令持续发送存活性检查,直到累计出现 20 次错误:

mc ping myminio --error-count 20

122 - mc pipe

语法

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

以下命令将 STDIN 的内容写入 S3 兼容存储。

echo "My Meeting Notes" | mc pipe s3/engineering/meeting-notes.txt

该命令语法如下:

mc [GLOBALFLAGS] pipe                              \
                 TARGET                            \
                 [--attr "string"]                 \
                 [--checksum "string"]             \
                 [--enc-kms "string"]              \
                 [--enc-s3 "string"]               \
                 [--enc-c "string"]                \
                 [--storage-class, --sc "string"]  \
                 [--tags "string"]
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

说明

变更: RELEASE.2023-01-11T03-14-16Z

mc pipe 现已支持并发上传,以提升大流式数据的吞吐量。

参数

TARGET

mc-cmd

Required

命令应运行的 alias 或前缀完整路径。

--attr

mc-cmd

Optional

为对象添加自定义元数据。

将键值对指定为 KEY=VALUE\;,每对之间用反斜杠加分号(\;)分隔。 例如:--attr key1=value1\;key2=value2\;key3=value3

--checksum

mc-cmd

Optional

说明

新增: RELEASE.2024-10-02T08-27-28Z

为上传的对象添加校验和。

有效值为: - MD5 - CRC32 - CRC32C - SHA1 - SHA256

该标志依赖服务器 trailing headers,并可用于 AWS 或 MinIO 目标。

--enc-kms

mc-cmd

使用客户端管理的密钥,通过服务端 SSE-KMS 加密 对对象进行加密或解密。

该参数接受格式为 KEY=VALUE 的键值对。

KEY

对象的完整路径,格式为 alias/bucket/path/object.ext

你也可以只指定顶层路径,以便对该路径下的所有操作使用同一个加密密钥。

VALUE

指定外部 KMS 上已有的数据密钥。

关于如何创建数据密钥,请参见 mc admin kms key create 参考文档。

例如:

--enc-kms "myminio/mybucket/prefix/object.obj=mybucketencryptionkey"

你可以通过重复该参数来指定多个加密密钥。

也可以指定某个前缀路径,对该路径下所有匹配对象应用加密:

--enc-kms "myminio/mybucket/prefix/=mybucketencryptionkey"
--enc-s3

mc-cmd

Optional

使用 KMS 管理的密钥,通过服务端 SSE-S3 加密 对对象进行加密或解密。 指定对象的完整路径,格式为 alias/bucket/prefix/object

例如:

--enc-s3 "myminio/mybucket/prefix/object.obj"

你可以多次指定该参数,以表示不同的待加密对象:

--enc-s3 "myminio/mybucket/foo/fooobject.obj" --enc-s3 "myminio/mybucket/bar/barobject.obj"

也可以指定某个前缀路径,对该路径下所有匹配对象应用加密:

--enc-s3 "myminio/mybucket/foo"
--enc-c

mc-cmd

Optional

使用客户端管理的密钥,通过服务端 SSE-C 加密 对对象进行加密或解密。

该参数接受格式为 KEY=VALUE 的键值对。

KEY

对象的完整路径,格式为 alias/bucket/path/object.ext

你也可以只指定顶层路径,以便对该路径下的所有操作使用同一个加密密钥。

VALUE

指定用于 SSE-C 加密的密钥,可以是 32 字节 RawBase64 编码密钥, 也可以是 64 字节十六进制编码密钥。

Raw Base64 编码 不接受= 填充的密钥。 请去掉填充,或使用支持 RAW 格式的 Base64 编码器。

  • KEY - 对象的完整路径,格式为 alias/bucket/path/object
  • VALUE - 用于加密对象的 32 字节 RAW Base64 编码数据密钥。

例如:

# RawBase64-Encoded string "mybucket32byteencryptionkeyssec"
--enc-c "myminio/mybucket/prefix/object.obj=bXlidWNrZXQzMmJ5dGVlbmNyeXB0aW9ua2V5c3NlYwo"

你可以通过重复该参数来指定多个加密密钥。

也可以指定某个前缀路径,对该路径下所有匹配对象应用加密:

--enc-c "myminio/mybucket/prefix/=bXlidWNrZXQzMmJ5dGVlbmNyeXB0aW9ua2V5c3NlYwo"
说明

说明

MinIO 强烈不建议在生产负载中使用 SSE-C 加密。 请改用 --enc-kms 参数启用 SSE-KMS,或使用 --enc-s3 参数启用 SSE-S3。

--storage-class, --sc

mc-cmd

Optional

TARGET 处的新对象设置存储类别。

关于 S3 存储类别的更多信息,请参见 Amazon 文档

--tags

mc-cmd

Optional

为 TARGET 应用一个或多个标签。

将键值对列表指定为 KEY1=VALUE1&KEY2=VALUE2,其中每一对表示分配给对象的一个标签。

全局标志

此命令支持 全局标志 中的任意选项。

示例

STDIN 内容写入本地文件系统

以下命令将 STDIN 的内容写入本地文件系统中的 /tmp 文件夹。

mc pipe /tmp/hello-world.go

将 ISO 镜像复制到 S3 存储

以下命令先流式读取 Debian 的 ISO 镜像内容,然后使用该数据流在 S3 路径创建对象。

cat debian-live-11.5.0-amd64-mate.iso | mc pipe s3/opensource-isos/debian-11-5.iso

将 MySQL 数据库转储流式传输到 S3

以下命令先流式传输 MySQL 数据库,再通过 mc pipe 使用该数据流在 S3 上创建备份:

mysqldump -u root -p ******* accountsdb | mc pipe s3/sql-backups/backups/accountsdb-sep-28-2022.sql

将文件写入 Reduced Redundancy 存储类别

以下命令读取 STDIN 数据流,并在 S3 的 Reduced Redundancy 存储类别中创建对象。

 mc pipe --storage-class REDUCED_REDUNDANCY s3/personalbuck/meeting-notes.txt

将文件连同元数据复制到 MinIO 部署

以下命令将 MP3 文件上传到 ALIAS 为 myminio、存储桶为 music 的 MinIO 部署。 写入对象时附带 Cache-ControlArtist 元数据。

cat music.mp3 | mc pipe --attr "Cache-Control=max-age=90000,min-fresh=9000;Artist=Unknown" myminio/music/guitar.mp3

为上传对象设置标签

以下命令在 ALIAS 为 myminio 的 MinIO 部署中,于 mybucket 存储桶创建一个带两个标签的对象。 MinIO 支持为对象最多添加 10 个自定义标签。

tar cvf - . | mc pipe --tags "category=prod&type=backup" myminio/mybucket/backup.tar

123 - mc put

说明

新增: mc

RELEASE.2024-02-24T01-33-20Z

语法

mc put 将对象从本地文件系统上传到目标 S3 部署中的存储桶。

mc cpmc mirror 相比,mc put 为文件上传提供了更简化的接口。 mc put 使用单向上传机制,以牺牲效率为代价换取相较其他命令更低的复杂度。

以下示例将本地文件系统路径 ~/images/collateral/ 下的文件 logo.png 上传到别名为 minio 的 MinIO 部署中名为 marketing 的存储桶。

mc put ~/images/collateral/logo.png minio/marketing

该命令的语法如下:

mc [GLOBALFLAGS] put                            \
                 TARGET                         \
                 [--checksum value]             \
                 [--disable-multipart]          \
                 [--enc-kms value]              \
                 [--enc-s3 value]               \
                 [--enc-c value]                \
                 [--if-not-exists]              \
                 [--parallel, -P integer]       \
                 [--part-size, -s string]       \
                 [--storage-class, -sc string]
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

TARGET

mc-cmd

Required

命令应执行位置的 alias 或前缀的完整路径。 TARGET 必须 包含 aliasbucket 名称。

TARGET 还可以包含以下可选组成部分: - 对象应上传到的 PREFIX - 用于替代文件名的 OBJECT-NAME

有效的 TARGET 可以采用以下任一形式: - ALIAS/BUCKET - ALIAS/BUCKET/PREFIX - ALIAS/BUCKET/OBJECT-NAME - ALIAS/BUCKET/PREFIX/OBJECT-NAME

--checksum

mc-cmd

Optional

说明

新增: RELEASE.2024-10-02T08-27-28Z

为上传对象添加校验和。

可选值包括: - MD5 - CRC32 - CRC32C - SHA1 - SHA256

该标志需要服务器支持 trailing headers,并可用于 AWS 或 MinIO 目标。

--disable-multipart

mc-cmd

Optional

说明

新增: RELEASE.2024-10-02T08-27-28Z

禁用分段上传,并指示 mc 通过单次 PUT 操作发送对象。

--enc-kms

mc-cmd

使用客户端管理的密钥,通过服务端 SSE-KMS 加密 对对象进行加密或解密。

该参数接受格式为 KEY=VALUE 的键值对。

KEY

对象的完整路径,格式为 alias/bucket/path/object.ext

你也可以只指定顶层路径,以便对该路径下的所有操作使用同一个加密密钥。

VALUE

指定外部 KMS 上已有的数据密钥。

关于如何创建数据密钥,请参见 mc admin kms key create 参考文档。

例如:

--enc-kms "myminio/mybucket/prefix/object.obj=mybucketencryptionkey"

你可以通过重复该参数来指定多个加密密钥。

也可以指定某个前缀路径,对该路径下所有匹配对象应用加密:

--enc-kms "myminio/mybucket/prefix/=mybucketencryptionkey"
--enc-s3

mc-cmd

Optional

使用 KMS 管理的密钥,通过服务端 SSE-S3 加密 对对象进行加密或解密。 指定对象的完整路径,格式为 alias/bucket/prefix/object

例如:

--enc-s3 "myminio/mybucket/prefix/object.obj"

你可以多次指定该参数,以表示不同的待加密对象:

--enc-s3 "myminio/mybucket/foo/fooobject.obj" --enc-s3 "myminio/mybucket/bar/barobject.obj"

也可以指定某个前缀路径,对该路径下所有匹配对象应用加密:

--enc-s3 "myminio/mybucket/foo"
--enc-c

mc-cmd

Optional

使用客户端管理的密钥,通过服务端 SSE-C 加密 对对象进行加密或解密。

该参数接受格式为 KEY=VALUE 的键值对。

KEY

对象的完整路径,格式为 alias/bucket/path/object.ext

你也可以只指定顶层路径,以便对该路径下的所有操作使用同一个加密密钥。

VALUE

指定用于 SSE-C 加密的密钥,可以是 32 字节 RawBase64 编码密钥, 也可以是 64 字节十六进制编码密钥。

Raw Base64 编码 不接受= 填充的密钥。 请去掉填充,或使用支持 RAW 格式的 Base64 编码器。

  • KEY - 对象的完整路径,格式为 alias/bucket/path/object
  • VALUE - 用于加密对象的 32 字节 RAW Base64 编码数据密钥。

例如:

# RawBase64-Encoded string "mybucket32byteencryptionkeyssec"
--enc-c "myminio/mybucket/prefix/object.obj=bXlidWNrZXQzMmJ5dGVlbmNyeXB0aW9ua2V5c3NlYwo"

你可以通过重复该参数来指定多个加密密钥。

也可以指定某个前缀路径,对该路径下所有匹配对象应用加密:

--enc-c "myminio/mybucket/prefix/=bXlidWNrZXQzMmJ5dGVlbmNyeXB0aW9ua2V5c3NlYwo"
说明

说明

MinIO 强烈不建议在生产负载中使用 SSE-C 加密。 请改用 --enc-kms 参数启用 SSE-KMS,或使用 --enc-s3 参数启用 SSE-S3。

--parallel, --P

mc-cmd

Optional

对于分段上传,指定对象分段并行上传的数量。

如未定义,默认值为 4

--part-size, -s

mc-cmd

Optional

指定分段上传中每个分段使用的大小。

如未定义,默认值为 16MiB

--storage-class, -sc

mc-cmd

Optional

为上传对象设置存储类。

有关存储类的更多信息,请参见 Standard Storage Class

全局标志

此命令支持 全局标志 中的任意选项。

示例

上传文件并指定对象名称

以下命令将本地文件系统中的文件 logo.png 上传到 minio 部署的 business 存储桶,并在目标端命名为 company-logo.png

mc put images/collateral/logo.png minio/business/company-logo.png

按指定分段大小并行上传分段对象

以下命令以每段 20MiB 的分块方式上传文件,并行上传其中 8 个分段。 系统会持续按批次上传 8 个分段,直到对象的所有分段均上传完成。

mc put ~/videos/collateral/splash-page.mp4 minio/business --parallel 8 --part-size 20MiB

124 - mc rb

语法

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

如仅需删除存储桶内容,请改用 mc rm

警告

重要

mc rb 会在目标部署上 永久删除存储桶, 包括所有 对象版本 以及存储桶配置,例如 生命周期管理复制

你也可以对本地文件系统使用 mc rb,其效果与 rm --rf 命令行工具类似。

以下命令删除 myminio MinIO 部署上的 mydata 存储桶:

mc rb --force myminio/mydata

命令语法如下:

mc [GLOBALFLAGS] rb             \
                 --force        \
                 [--dangerous]  \
                 ALIAS [ALIAS...]
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

必需 MinIO 或其他兼容 S3 服务的 alias,以及要删除的存储桶完整路径。例如:

mc rb --force myminio/mydata

省略存储桶路径可对 MinIO 部署执行站点范围的存储桶删除操作。 此操作 必须 指定 --dangerous,以明确确认会永久删除该部署上的 全部 数据。例如:

mc rb --force --dangerous myminio

若要删除本地文件系统上的目录及其内容,请指定该目录的完整路径。 如果指定了 --force 标志,也会被忽略。例如:

mc rb ~/data/myolddata

你可以指定多个 ALIAS 目标,目标可以是 MinIO 或本地文件系统目录。 命令会尝试删除 所有 指定目标。例如:

mc rb --force myminio/mydata ~/data/myolddata
--force

mc-cmd

必需 用于确认删除存储桶内容的安全标志。

--dangerous

mc-cmd

可选 指示 mc rb 在每个指定的 ALIAS(例如 myminio/)上执行站点范围的全部存储桶删除。

如果任一 ALIAS 指定的是文件系统目录,此选项会删除该目录路径下的所有子目录和文件,效果类似 rm --rf

注意

警告

执行 mc rb --dangerous 不可逆。 在执行前请尽可能审慎核对,确保命令仅作用于预期的 ALIAS 目标。

全局标志

此命令支持 全局标志 中的任意选项。

示例

删除存储桶

mc rb --force ALIAS/PATH
  • ALIAS 替换为已配置的兼容 S3 主机的 alias
  • PATH 替换为要删除的存储桶路径。

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

125 - mc ready

语法

mc ready 命令用于检查集群状态,以及集群是否具有 readwrite quorum。

以下命令向别名为 myminio 的集群发送 GET 请求,并返回其状态。

mc ready myminio

该命令会向 alias myminio 对应的部署发送 GET 请求。 该命令会重复发送请求,直到成功为止。

在别名 myminio 对应的集群就绪之前,输出类似如下:

The cluster `myminio` is unreachable: Get "http://myminio.example.com:9000/minio/health/cluster": dial tcp 198.51.100.0:9000: connect: connection refused

当请求成功连接到 myminio 部署后,输出类似如下:

The cluster `myminio` is ready

该命令语法如下:

mc [GLOBALFLAGS] ready            \
                 TARGET           \
                 [--cluster-read] \
                 [--maintenance]
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

TARGET

mc-cmd

Required

命令运行目标的完整路径,可为 alias 或前缀。

--cluster-read

mc-cmd

Optional

检查集群是否具有足够的 quorum 来处理 READ 请求。

--maintenance

mc-cmd

Optional

检查当该别名对应节点因维护下线时,集群是否仍可维持 read 和 write quorum。

对预期下线维护的具体节点使用其 alias,而不要使用指向负载均衡器的 alias。

全局标志

此命令支持 全局标志 中的任意选项。

示例

检查集群是否具有 read quorum

以下命令检查某个部署是否有足够可用驱动器来执行读取操作。

mc read myminio --cluster-read

检查集群是否处于维护下线场景

以下命令检查当别名 myminio 对应节点下线时,集群在维护期间是否仍可维持 read 和 write quorum。

mc ready myminio --maintenance

126 - mc replicate

说明

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

说明

说明

对于多站点复制,请参见 mc admin replicate

子命令

mc replicate 包含以下子命令:

子命令

说明

add

mc replicate add 命令会为 MinIO 部署中的存储桶创建一条新的 服务端复制 规则。

backlog

mc replicate backlog 显示尚未复制的新建或已删除对象列表。

export

mc replicate export 命令将 MinIO 存储桶的 JSON 格式 复制规则 导出到 STDOUT

import

mc replicate import 命令从 STDIN 为 MinIO 存储桶导入 JSON 格式的 replication rules

ls

mc replicate ls 命令列出 MinIO 存储桶上的所有 复制规则

resync

mc replicate resync 命令会将指定 MinIO 存储桶中的所有对象, 重新同步到远端 replication 目标。

rm

mc replicate rm 命令用于从 MinIO 存储桶中删除 replication rule

status

mc replicate status 命令显示 MinIO 存储桶的 复制状态。 该状态还会列出远程目标路径或位置。

update

mc replicate update 命令用于修改现有的 存储桶复制规则

127 - mc retention

描述

mc retention 命令用于为存储桶中的一个或多个对象配置 Write-Once Read-Many (WORM) locking 设置。 你还可以为存储桶设置默认的对象锁定设置;未显式配置对象锁定设置的所有对象都会继承该存储桶默认值。

子命令

mc retention 包含以下子命令:

子命令

描述

clear

mc retention clear 命令可移除存储桶中一个或多个对象的 Write-Once Read-Many (WORM) locking 设置。 你还可以移除存储桶的默认对象锁定设置。

info

mc retention info 命令用于为对象或存储桶中的对象配置 Write-Once Read-Many (WORM) locking 设置。 你还可以为存储桶设置默认对象锁定设置,未显式配置对象锁定的对象会继承该存储桶默认值。

set

mc retention set 命令用于为存储桶中的一个或多个对象配置 Write-Once Read-Many (WORM) locking 设置。 你还可以为存储桶设置默认对象锁定设置,使未显式配置对象锁定的所有对象继承该存储桶默认值。

128 - mc rm

语法

mc rm 命令用于从 MinIO 部署的存储桶中 删除对象。 如需彻底删除存储桶,请改用 mc rb

你也可以对本地文件系统使用 mc rm,以获得与 rm 命令行工具类似的结果。

有关 MinIO 如何对对象执行 DELETE 操作的更多信息,请参见 对象删除

警告

重要

mc rm 支持在一条命令中删除多个对象 文件。 建议使用 --dry-run 选项验证操作仅作用于预期的对象/文件。

以下命令从 myminio MinIO 部署的 mydata 存储桶中删除多个对象:

mc rm --recursive myminio/mydata

命令语法如下:

mc [GLOBALFLAGS] rm  \
                 [--bypass]               \
                 [--dangerous]            \
                 [--dry-run]              \
                 [--force]*               \
                 [--incomplete]           \
                 [--newer-than "string"]  \
                 [--non-current]          \
                 [--older-than "string"]  \
                 [--recursive]            \
                 [--rewind "string"]      \
                 [--stdin]                \
                 [--version-id "string"]* \
                 [--versions]             \
                 ALIAS [ALIAS ...]
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

mc rm --force 是多个参数的必需项。 mc rm --version-id 与多个 参数互斥。更多信息请参见参考文档。

参数

ALIAS

mc-cmd

Required

MinIO 部署的 alias,以及要删除对象的完整路径。 例如:

mc rm play/mybucket/object.txt

你可以在同一个或不同的 MinIO 部署上指定多个对象。 例如:

mc rm play/mybucket/object.txt play/mybucket/otherobject.txt

如果指定的是存储桶或存储桶前缀路径,必须 同时 指定 --recursive--force 参数。例如:

mc rm --recursive --force play/mybucket/

mc rm --recursive --force play/mybucket/myprefix/

建议先使用 --dry-run 标志运行命令,验证 递归删除操作的范围。

若要从本地文件系统删除文件,请指定该文件的完整路径:

mc rm ~/data/myoldobject.txt
--bypass

mc-cmd

Optional

允许删除受 GOVERNANCE 对象锁保护的对象。

--dangerous

mc-cmd

Optional

ALIAS 指定 MinIO 部署的根路径(所有存储桶)时, 允许执行 mc rm

--versions 结合使用时, 此标志会指示 mc rm 永久删除 ALIAS 目标中的所有对象 以及 所有版本。

建议先使用 --dry-run 运行命令, 验证站点范围删除操作的范围。

注意

警告

搭配 --versions 标志运行 mc rm --dangerous 是不可逆操作。执行前请尽可能 审慎核查,确保命令只应用于预期的 ALIAS 目标。

--dry-run

mc-cmd

Optional

输出命令结果,但不会实际删除任何文件。 使用此标志可测试命令配置是否仅删除你希望删除的对象。

--force

mc-cmd

Optional

允许 mc rm 与以下任一参数一起运行:

--incomplete, I

mc-cmd

Optional

删除指定对象的不完整上传。

如果任一 ALIAS 指定了存储桶, 则 必须 同时指定 --recursive--force

--newer-than

mc-cmd

Optional

删除新于指定时长的对象。请使用 #d#hh#mm#ss 格式的字符串。例如:--newer-than 1d2hh3mm4ss

默认为 0(所有对象)。

--non-current

mc-cmd

Optional

从指定的 ALIAS 中删除所有 非当前 对象版本。

对未启用 版本控制 的存储桶,此选项无效。

--older-than

mc-cmd

Optional

删除早于指定时间限制的对象。请使用 #d#h#m#s 格式的字符串。例如:--older-than 1d2h3m4s

默认为 0(所有对象)。

--recursive, r

mc-cmd

Optional

递归删除每个 ALIAS 存储桶或存储桶前缀的内容。

如果指定 --recursive,则 必须 同时 指定 --force

对启用了 版本控制 的存储桶, 此选项默认会为每个被删除对象生成一个删除标记。 添加 --versions 标志可递归删除存储桶中的 所有对象 以及 对象版本。

建议先使用 --dry-run 标志运行命令,验证 递归删除操作的范围。

mc rm --version-id 互斥

--rewind

mc-cmd

Optional

指示 mc rm 仅对指定时间点存在的对象版本执行操作。

  • 如需回溯到过去的特定日期,请将该日期指定为 ISO8601 格式的时间戳。 例如:--rewind "2020.03.24T10:00"
  • 如需按时间长度回溯,请将该时长指定为 #d#hh#mm#ss 格式的字符串。 例如:--rewind "1d2hh3mm4ss"

--rewind 要求指定的 ALIAS 指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用 mc version 启用或禁用存储桶版本控制。

--stdin

mc-cmd

Optional

STDIN 读取对象名称或存储桶。

--versions

mc-cmd

Optional

指示 mc rm 对存储桶中存在的所有对象版本执行操作。

--versions 要求指定的 ALIAS 指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用 mc version 启用或禁用存储桶版本控制。

--versions--rewind 一起使用,可删除某一特定时间点 存在的对象的所有版本。

--version-id, vid

mc-cmd

Optional

指示 mc rm 仅对指定的对象版本执行操作。

--version-id 要求指定的 ALIAS 指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用 mc version 启用或禁用存储桶版本控制。

与以下任一标志互斥:

全局标志

此命令支持 全局标志 中的任意选项。

示例

删除单个对象

mc rm ALIAS/PATH
  • ALIAS 替换为已配置的 S3 兼容服务的 alias
  • PATH 替换为对象路径。

递归删除存储桶内容

mc rm--recursive--force 选项结合使用, 可递归删除存储桶内容。

mc rm --recursive --force ALIAS/PATH
  • ALIAS 替换为已配置的 S3 兼容服务的 alias
  • PATH 替换为存储桶路径。

此操作 不会 删除存储桶本身。请使用 mc rb 删除存储桶 及其全部内容和关联配置。

删除对象的所有不完整上传文件

mc rm--incomplete 选项结合使用, 可删除某个对象的不完整上传文件。

mc rm --incomplete --recursive --force ALIAS/PATH
  • ALIAS 替换为已配置的 S3 兼容服务的 alias
  • PATH 替换为对象路径。

将对象回滚到先前版本

mc rm--versions--newer-than 结合使用,可删除新于指定时长的 所有对象版本。这会有效地将对象“回滚”到该时间点的状态。

警告

重要

删除对象的特定版本属于 破坏性 操作。你无法恢复 已删除的对象版本。

mc rm ALIAS/PATH --versions --newer-than DURATION
  • ALIAS 替换为已配置的 S3 兼容服务的 alias
  • PATH 替换为对象路径。 例如:/mybucket/myobject
  • DURATION 替换为相对于当前主机时间的过去时长, 操作将从该时间点开始删除对象版本。例如,要删除过去 30 天内 创建的所有对象版本,请指定 "30d"

行为

删除存储桶内容

使用 mc rm 删除存储桶中的全部内容时,不会删除存储桶本身。 与该存储桶关联的配置会保留,例如 default object lock settings

如需彻底删除存储桶,请使用 mc rb,而不是 mc rm

MinIO 在删除对象时会清理空前缀

mc rm 依赖 mc 的删除 API 来移除对象。在删除存储桶前缀中的最后一个对象时, mc 还会递归删除直到存储桶根为止的每一个空前缀。mc 只会对在对象写入 操作过程中 隐式 创建的前缀执行这种递归删除,也就是说,该前缀不是通过 mc mb 这类显式目录创建命令创建的。

例如,假设存储桶 photos 中有以下对象前缀:

  • photos/2021/january/myphoto.jpg
  • photos/2021/february/myotherphoto.jpg
  • photos/NYE21/NewYears.jpg

photos/NYE21唯一 通过 mc mb 显式创建的前缀。其余所有前缀 都是在向该前缀写入对象时 隐式 创建的。

如果某个 mc 命令删除了 myphoto.jpg,删除 API 会自动裁剪空的 /january 前缀。如果后续某个 mc 命令又删除了 myotherphoto.jpg, 删除 API 会自动裁剪 /february 前缀,以及此时已经为空的 /2021 前缀。 如果某个 mc 命令删除了 NewYears.jpg,由于 /NYE21显式 创建的,因此该前缀会保留不变。

如果将 mc rm 用于文件系统操作,mc 也会采用相同行为,递归裁剪直到 根目录的所有空目录。不过,mc 的删除 API 无法区分某个目录路径是显式 创建的,还是隐式创建的。如果 mc rm 删除了某个文件系统路径上的最后一个对象, mc 会在删除过程中递归删除从该路径向上直到根目录的所有空目录。

版本化存储桶中的删除操作

MinIO 支持在单个存储桶中保留对象的多个 版本。 在版本化存储桶中 删除 对象时, 会生成一种特殊的 DeleteMarker 墓碑记录,将对象标记为已删除, 同时保留该对象的所有先前版本。

说明

变更: mc

RELEASE.2023-03-20T17-17-53Z

输出会显示版本化文件的修改时间。 与 --dry-run 搭配使用时,这有助于确认你选择了正确的删除对象。

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

129 - mc share

说明

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

子命令

mc share 包含以下子命令:

子命令

说明

download

mc share download 命令会生成一个临时的预签名 URL,并集成访问凭证, 用于从 MinIO 存储桶下载对象。该临时 URL 会在可配置的时间限制后过期。

list

mc share ls 命令会显示由 mc share uploadmc share download 生成的所有未过期预签名 URL。

upload

mc share upload 命令会生成一个临时的预签名 URL,并集成用于将对象上传到 MinIO 存储桶的访问凭证。该临时 URL 会在可配置的时间限制后过期。

130 - mc sql

语法

mc sql 命令提供 S3 Select 接口,用于对指定 MinIO 部署中的对象执行 SQL 查询。

有关 S3 Select 的行为和限制,请参阅 Selecting content from objects

以下命令会查询 myminio MinIO 部署中 mydata 存储桶内的所有对象:

mc sql --recursive --query "select * from S3Object" myminio/mydata

该命令的语法如下:

mc [GLOBALFLAGS] mc sql                          \
                 --query "string"                \
                 [--csv-input "string"]          \
                 [--compression "string"]        \
                 [--csv-output "string"]         \
                 [--csv-output-header "string"]  \
                 [--enc-c "string"]              \
                 [--json-input "string"]         \
                 [--json-output "string"]        \
                 [--recursive]                   \
                 ALIAS
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

要执行 SQL 查询的存储桶或对象的完整路径。 指定已配置 S3 服务的 alias 作为 ALIAS 路径前缀。 例如:

mc sql [FLAGS] play/mybucket
--query, e

mc-cmd

Required

在指定 ALIAS 目录或对象上执行的 SQL 语句。 将完整 SQL 查询用双引号 " 包裹。

默认为 "select * from S3Object"

--csv-input

mc-cmd

Optional

.csv 输入对象的数据格式。 指定由逗号分隔的 key=value,... 键值对字符串。 有效键的更多信息请参阅 CSV 格式字段

--compression

mc-cmd

Optional

输入对象的压缩类型。 指定以下受支持值之一:

  • GZIP
  • BZIP2
  • NONE(默认)

仅 MinIO 后端支持以下压缩方案:

--csv-output

mc-cmd

Optional

.csv 输出的数据格式。 指定由逗号分隔的 key=value,... 键值对字符串。 有效键的更多信息请参阅 CSV 格式字段

更多信息请参阅 S3 API CSVOutput

--csv-output-header

mc-cmd

Optional

.csv 输出文件的表头行。 将逗号分隔的字段字符串指定为 field1,field2,...

省略该参数则输出不包含表头行的 .csv

--enc-c

mc-cmd

Optional

使用客户端管理的密钥,通过服务端 SSE-C 加密 对对象进行加密或解密。

该参数接受格式为 KEY=VALUE 的键值对。

KEY

对象的完整路径,格式为 alias/bucket/path/object.ext

你也可以只指定顶层路径,以便对该路径下的所有操作使用同一个加密密钥。

VALUE

指定用于 SSE-C 加密的密钥,可以是 32 字节 RawBase64 编码密钥, 也可以是 64 字节十六进制编码密钥。

Raw Base64 编码 不接受= 填充的密钥。 请去掉填充,或使用支持 RAW 格式的 Base64 编码器。

  • KEY - 对象的完整路径,格式为 alias/bucket/path/object
  • VALUE - 用于加密对象的 32 字节 RAW Base64 编码数据密钥。

例如:

# RawBase64-Encoded string "mybucket32byteencryptionkeyssec"
--enc-c "myminio/mybucket/prefix/object.obj=bXlidWNrZXQzMmJ5dGVlbmNyeXB0aW9ua2V5c3NlYwo"

你可以通过重复该参数来指定多个加密密钥。

也可以指定某个前缀路径,对该路径下所有匹配对象应用加密:

--enc-c "myminio/mybucket/prefix/=bXlidWNrZXQzMmJ5dGVlbmNyeXB0aW9ua2V5c3NlYwo"
说明

说明

MinIO 强烈不建议在生产负载中使用 SSE-C 加密。 请改用 --enc-kms 参数启用 SSE-KMS,或使用 --enc-s3 参数启用 SSE-S3。

--json-input

mc-cmd

Optional

.json.ndjson 输入对象的数据格式。 将 JSON 内容类型指定为 type=<VALUE>。 值可以是:

更多信息请参阅 S3 API JSONInput

--json-output

mc-cmd

Optional

.json 输出的数据格式。 支持 rd=value 键,其中 rd 是 JSON 文档的 RecordDelimiter

省略该参数则使用默认换行符 \n

更多信息请参阅 S3 API JSONOutput

--recursive, r

mc-cmd

Optional

使用 --query SQL 语句递归搜索指定的 ALIAS 目录。

全局标志

此命令支持 全局标志 中的任意选项。

示例

选择存储桶内所有对象的所有列

mc sql--recursive--query 选项结合使用,可将查询应用到存储桶中的所有对象:

mc sql --recursive --query "select * from S3Object" ALIAS/PATH
  • ALIAS 替换为 MinIO 部署的 alias
  • PATH 替换为 MinIO 部署上存储桶的路径。

在对象上运行聚合查询

mc sql--query 选项结合使用,可查询 MinIO 部署上的对象:

mc sql --query "select count(s.power) from S3Object" ALIAS/PATH
  • ALIAS 替换为 MinIO 部署的 alias
  • PATH 替换为 MinIO 部署上对象的路径。

行为

输入格式

mc sql 支持以下输入格式:

类型 content-type
.csv text/csv
.json application/json
.parquet

对于 .csv 文件类型,使用 mc sql --csv-input 指定 CSV 数据格式。 有关 CSV 格式字段的更多信息,请参阅 CSV 格式字段

对于 .json 文件类型,使用 mc sql --json-input 指定 JSON 数据格式。

对于 .parquet 文件类型,mc sql 会自动解析数据格式。

mc sql 通过目标对象的文件扩展名判断类型。 例如,名为 data.json 的对象会被解释为 JSON 文件。

如果对象具有合适的 content-type,你也可以查询受支持类型但扩展名不同的数据。 更多信息请参阅 mc cp --attr

CSV 格式字段

下表列出了可用于 mc sql --csv-inputmc sql --csv-output 的有效键值对。 某些键值对仅适用于 --csv-input。 有关 S3 CSV 格式的更多信息,请参阅 S3 API CSVInput 文档。

--csv-input

说明

rd

用于分隔输入 .csv 文件中每条记录(行)的字符。

对应 S3 API CSVInput 中的 RecordDelimiter

fd

用于分隔一条记录中各字段的字符。默认为 ,

对应 S3 API CSVInput 中的 FieldDelimeter

qc

fd 字符是字段值的一部分时,用于转义的字符。默认为 "

对应 S3 API CSVInput 中的 QuoteCharacter

qec

在已转义值内部,用于转义引号 " 字符的字符。

对应 S3 API CSVInput 中的 QuoteEscapeCharacter

fh

.csv 文件第一行的内容类型。

指定以下受支持值之一:

  • NONE - 第一行不是表头。

  • IGNORE - 忽略第一行。

  • USE - 第一行是表头。

对于 NONEIGNORE,你必须在 --query 语句中指定列位置 _# 来标识列。

对于 USE,你可以在 --query 语句中指定表头值来标识列。

对应 S3 API CSVInput 中的 FieldHeaderInfo

cc

用于指示应忽略某条记录的字符。 该字符 必须 出现在记录开头。

对应 S3 API CSVInput 中的 Comment

qrd

指定 TRUE 表示字段中可以包含记录分隔符值(rd)。

默认为 FALSE

对应 S3 API CSVInput 中的 AllowQuotedRecordDelimiter

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

131 - mc stat

语法

mc stat 命令用于显示 MinIO 存储桶中对象的信息,包括对象元数据。 你也可以使用它来检索存储桶元数据。

你可以对本地文件系统使用 mc stat,以获得与 stat 命令行工具类似的结果。

以下命令显示 myminio MinIO 部署中 mydata 存储桶内所有对象的信息:

mc stat --recursive myminio/mydata

该命令具有以下语法:

mc [GLOBALFLAGS] stat                      \
                 [--enc-c "value"]         \
                 [--no-list]               \
                 [--recursive]             \
                 [--rewind "string"]       \
                 [--versions]              \
                 [--version-id "string"]*  \
                 ALIAS [ALIAS ...]
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

mc stat --version-id 与多个参数互斥。更多信息请参阅参考文档。

参数

ALIAS

mc-cmd

Required

MinIO 部署的 alias,以及要检索详细信息的对象完整路径。例如:

mc stat myminio/mybucket/myobject.txt

你可以在同一个或不同的 MinIO 部署上指定多个对象:

mc stat myminio/mybucket/myobject.txt myminio/mybucket/myobject.txt

如果指定的是存储桶路径或存储桶前缀路径,则 必须 包含 mc stat --recursive 标志:

mc stat --recursive myminio/mybucket/

要检索本地文件系统中文件的信息,请指定该文件的完整路径:

mc stat ~/data/myobject.txt
--enc-c

mc-cmd

Optional

使用客户端管理的密钥,通过服务端 SSE-C 加密 对对象进行加密或解密。

该参数接受格式为 KEY=VALUE 的键值对。

KEY

对象的完整路径,格式为 alias/bucket/path/object.ext

你也可以只指定顶层路径,以便对该路径下的所有操作使用同一个加密密钥。

VALUE

指定用于 SSE-C 加密的密钥,可以是 32 字节 RawBase64 编码密钥, 也可以是 64 字节十六进制编码密钥。

Raw Base64 编码 不接受= 填充的密钥。 请去掉填充,或使用支持 RAW 格式的 Base64 编码器。

  • KEY - 对象的完整路径,格式为 alias/bucket/path/object
  • VALUE - 用于加密对象的 32 字节 RAW Base64 编码数据密钥。

例如:

# RawBase64-Encoded string "mybucket32byteencryptionkeyssec"
--enc-c "myminio/mybucket/prefix/object.obj=bXlidWNrZXQzMmJ5dGVlbmNyeXB0aW9ua2V5c3NlYwo"

你可以通过重复该参数来指定多个加密密钥。

也可以指定某个前缀路径,对该路径下所有匹配对象应用加密:

--enc-c "myminio/mybucket/prefix/=bXlidWNrZXQzMmJ5dGVlbmNyeXB0aW9ua2V5c3NlYwo"
说明

说明

MinIO 强烈不建议在生产负载中使用 SSE-C 加密。 请改用 --enc-kms 参数启用 SSE-KMS,或使用 --enc-s3 参数启用 SSE-S3。

--no-list

mc-cmd

Optional

如果目标不存在,则禁用所有 LIST 操作。

--recursive, r

mc-cmd

Optional

递归地对 ALIAS 指定的 MinIO 存储桶内容执行 mc stat

--rewind

mc-cmd

Optional

指示 mc stat 仅对指定时间点存在的对象版本执行操作。

  • 如需回溯到过去的特定日期,请将该日期指定为 ISO8601 格式的时间戳。 例如:--rewind "2020.03.24T10:00"
  • 如需按时间长度回溯,请将该时长指定为 #d#hh#mm#ss 格式的字符串。 例如:--rewind "1d2hh3mm4ss"

--rewind 要求指定的 ALIAS 指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用 mc version 启用或禁用存储桶版本控制。

--versions

mc-cmd

Optional

指示 mc stat 对存储桶中存在的所有对象版本执行操作。

--versions 要求指定的 ALIAS 指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用 mc version 启用或禁用存储桶版本控制。

--versions--rewind 一起使用,可移除某个特定时间点存在的所有对象版本。

--version-id, vid

mc-cmd

Optional

指示 mc stat 仅对指定的对象版本执行操作。

--version-id 要求指定的 ALIAS 指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用 mc version 启用或禁用存储桶版本控制。

与以下任一标志互斥:

全局标志

此命令支持 全局标志 中的任意选项。

示例

显示对象详情

以下示例显示存储桶 mybucket 中对象 myfile.txt 的详细信息:

mc stat myminio/mybucket/myfile.txt

输出类似如下:

Name      : myfile.txt
Date      : 2024-07-16 15:40:02 MDT
Size      : 6.0 KiB
ETag      : 3b38f7b05a0c42acdc377e60b2a74ddf
Type      : file
Metadata  :
  Content-Type: text/plain

你可以通过添加多个路径来指定多个对象:

mc stat myminio/mybucket/file1.txt myminio/yourbucket/file2.txt

要显示存储桶中所有对象的详细信息,请使用 --recursive。 以下示例显示存储桶 mybucket 中所有对象的详细信息:

mc stat --recursive myminio/mybucket

输出类似如下:

Name      : file1.txt
Date      : 2024-07-16 15:40:02 MDT
Size      : 6.0 KiB
ETag      : 3b38f7b05a0c42acdc377e60b2a74ddf
Type      : file
Metadata  :
  Content-Type: text/plain

Name      : file2.txt
Date      : 2024-07-26 10:45:19 MDT
Size      : 6.0 KiB
ETag      : 3b38f7b05a0c42acdc377e60b2a74ddf
Type      : file
Metadata  :
  Content-Type: text/plain

显示存储桶详情

以下示例显示 myminio MinIO 部署上存储桶 mybucket 的信息:

mc stat myminio/mybucket

输出类似如下:

Name      : mybucket
Date      : 2024-07-26 10:56:43 MDT
Size      : N/A
Type      : folder

Properties:
  Versioning: Un-versioned
  Location: us-east-1
  Anonymous: Disabled
  ILM: Disabled

Usage:
      Total size: 6.0 KiB
   Objects count: 1
  Versions count: 0

Object sizes histogram:
   1 object(s) BETWEEN_1024B_AND_1_MB
   1 object(s) BETWEEN_1024_B_AND_64_KB
   0 object(s) BETWEEN_10_MB_AND_64_MB
   0 object(s) BETWEEN_128_MB_AND_512_MB
   0 object(s) BETWEEN_1_MB_AND_10_MB
   0 object(s) BETWEEN_256_KB_AND_512_KB
   0 object(s) BETWEEN_512_KB_AND_1_MB
   0 object(s) BETWEEN_64_KB_AND_256_KB
   0 object(s) BETWEEN_64_MB_AND_128_MB
   0 object(s) GREATER_THAN_512_MB
   0 object(s) LESS_THAN_1024_B

存储桶中的对象数量

要显示存储桶中的对象数量,请使用 --json 并通过 JSON 解析器提取 objectsCount 的值:

以下示例使用 jq 工具:

mc stat myminio/mybucket --json | jq '.Usage.objectsCount'

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

132 - mc support

描述

MinIO Client mc support 命令提供用于分析部署健康状况或性能、并运行诊断的工具。 你还可以上传生成的健康报告,供 MinIO 工程团队进一步分析。

警告

重要

mc support 命令需要有效的 MinIO SUBNET 注册。

mc support proxy setmc support proxy remove 是例外,因为你可能需要先配置代理才能完成部署注册。

子命令

mc support 包含以下子命令:

子命令

描述

callhome

mc support callhome 命令用于启用或禁用将部署诊断信息发送到 MinIO SUBNET

diag

mc support diag 命令用于为 MinIO 部署生成健康报告。

inspect

mc support inspect 命令会收集指定路径下与对象相关的数据和元数据。

perf

使用 mc support perf 命令可检查 S3 API(读/写)、网络 IO 和存储(磁盘读/写)的性能。

profile

mc support profile 为你的部署运行系统性能剖析。 剖析结果可帮助了解给定节点上运行的 MinIO 服务端进程状态。

proxy

使用 mc support proxy 命令配置与 MinIO SUBNET 通信时使用的代理。

top

mc support top 命令返回分布式 MinIO 部署的统计信息, 类似于 shell 中 top 命令的输出。

133 - mc tag

说明

mc tag 命令用于添加、删除和列出与存储桶或对象关联的标签。

MinIO 支持为对象最多添加 10 个自定义标签。

子命令

mc tag 包含以下子命令:

子命令

说明

list

mc tag list 命令列出存储桶或对象上的所有标签。

remove

mc tag remove 命令用于移除存储桶或对象上的所有标签。

set

mc tag set 命令可为存储桶或对象设置一个或多个标签。

134 - mc tree

语法

mc tree 命令以树形格式列出 MinIO 存储桶中的所有前缀。 该命令还可选支持在每个前缀处列出存储桶内的所有对象,包括存储桶根。

你也可以将 mc tree 用于本地文件系统目录, 获得与 tree 命令行工具类似的结果。

以下命令会打印 myminio MinIO 部署中 mydata 存储桶内 任意深度的全部对象树:

mc tree --files myminio/mydata

该命令具有以下语法:

mc [GLOBALFLAGS] tree                 \
                 [--depth int]        \
                 [--files]            \
                 [--rewind "string"]  \
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

必需 MinIO 部署的 alias 和存储桶的完整路径, 用于列出树形层级。例如:

mc tree myminio/mybucket

你可以为 mc tree 命令指定多个目标。例如:

mc tree myminio/mybucket myminio/myotherbucket

如需获取本地文件系统目录的树形层级, 请指定该目录的完整路径。例如:

mc tree ~/minio/mydata/
--depth, d

mc-cmd

可选 将树深度限制为指定的整数值。

默认为 -1,即不限制深度。

--files, f

mc-cmd

可选mc tree 输出中包含对象或目录中的文件。

--rewind

mc-cmd

Optional

指示 mc tree 仅对指定时间点存在的对象版本执行操作。

  • 如需回溯到过去的特定日期,请将该日期指定为 ISO8601 格式的时间戳。 例如:--rewind "2020.03.24T10:00"
  • 如需按时间长度回溯,请将该时长指定为 #d#hh#mm#ss 格式的字符串。 例如:--rewind "1d2hh3mm4ss"

--rewind 要求指定的 ALIAS 指向支持 存储桶版本控制 的 S3 兼容服务。对于 MinIO 部署, 请使用 mc version 启用或禁用存储桶版本控制。

示例

mc tree ALIAS/PATH
  • ALIAS 替换为 MinIO 部署的 alias
  • PATH 替换为 MinIO 部署上存储桶的路径。

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

135 - mc undo

语法

mc undo 命令用于撤销指定路径上由 PUTDELETE 操作引起的更改。

以下命令会回滚 myminio 部署中 data 存储桶内 file.zip 对象最近三次上传和/或删除操作:

mc undo myminio/data/file.zip --last 3

命令语法如下:

mc [GLOBALFLAGS] undo                \
                 TARGET              \
                 [--action "type"]   \
                 [--force]           \
                 [--last "integer"]  \
                 [--recursive, r]    \
                 [--dry-run]
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

TARGET

mc-cmd

Required

命令应执行的对象或前缀的完整路径。 路径必须包含 ALIAS、存储桶以及前缀或对象名称。

--action

mc-cmd

Optional

撤销指定类型的最近一次更改。 可接受的值为 DELETEPUT

默认情况下,mc undo 会同时回滚 DELETEPUT 操作。 使用 --action 可在两者中选择其一,但仅针对该类型最近的一次操作。

以下命令会回滚 data 存储桶中对象 today.zip 最近一次 PUT,恢复到该对象的上一版本:

mc undo myminio/data/today.zip --action "PUT"

以下示例会回滚前缀 archive 最近一次 DELETE,并递归恢复该前缀及其所有子对象:

mc undo myminio/data/archive --recursive --action "DELETE"

--last 互斥。

--dry-run

mc-cmd

Optional

输出命令结果,但不实际执行操作。 使用此标志可测试按特定方式运行命令时的结果。

--force

mc-cmd

Optional

强制执行递归操作。

--last

mc-cmd

Optional

接受一个整数值,用于指定要撤销的 PUT 和/或 DELETE 更改次数。

若未指定,命令默认回滚一次(1)操作。 与 --action 互斥。

--recursive, r

mc-cmd

Optional

以递归方式执行命令。 例如,可使用此标志撤销某个前缀上的更改。

全局标志

此命令支持 全局标志 中的任意选项。

示例

撤销对象最近三次上传或删除

以下命令会回滚 myminio 部署中 data 存储桶内 file.zip 对象最近三次上传和/或删除操作:

mc undo myminio/data/file.zip --last 3

撤销某个前缀下任意对象最近一次上传或删除

使用 mc undo 回滚在 myminio 别名下、data 存储桶中 presentations/recordings/ prefix 内最近一次 PUTDELETE 操作:

mc undo myminio/data/presentations/recordings/ --recursive --force

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

136 - mc update

语法

Pigsty 维护版客户端为保持命令行兼容而保留 mc update,但 刻意禁用了自更新。该命令不会访问发布源、下载二进制,也不会替换已安装的 mc/mcli;它会打印错误并以状态码 1 退出。

请通过下载与安装Pigsty 软件仓库GitHub Releases升级。

以下命令会报告自更新已禁用,并以状态码 1 退出:

mc update

该命令的语法如下:

mc [GLOBALFLAGS] update [--json] [RELEASE-URL]
  • 方括号 [] 表示可选参数。
  • RELEASE-URL 仅为兼容性而接受,不会被访问。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

非 JSON 模式的错误文本为:

Self-update is disabled in the Pigsty mc fork; upgrade only through the Pigsty package repository or https://github.com/pgsty/mc/releases.

全局参数

--json

mc-cmd

Optional

把“更新已禁用”的错误格式化为一条 JSON Lines 对象。该参数不会启用更新。

例如:

mc update --json

137 - mc version

描述

mc version 命令可为 MinIO 存储桶启用、禁用并获取 版本控制 状态。

有关 MinIO 中对象版本控制的更多信息,请参见 存储桶版本控制

mc version 包含以下子命令:

子命令

描述

enable

mc version enable 命令用于为指定存储桶启用版本控制。

info

mc version info 命令返回指定存储桶的版本控制状态。

suspend

mc version suspend 命令用于禁用指定存储桶上的版本控制。

行为

对象锁定会启用存储桶版本控制

虽然默认禁用存储桶版本控制,但在存储桶上或该存储桶中的对象上配置对象锁定时,会自动为该存储桶启用版本控制。 有关配置对象锁定的更多信息,请参见 mc retention

现有数据下的存储桶版本控制

在包含现有数据的存储桶上启用版本控制时,会立即为每个未版本化对象创建一个 null 值版本 ID。

在包含现有已版本化数据的存储桶上禁用版本控制时,不会 删除任何已版本化对象。 禁用存储桶版本控制后,应用程序仍可继续访问已版本化数据。 使用 mc rm --versions ALIAS/BUCKET/OBJECT 删除某个对象 及其 所有版本。

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

138 - mc watch

语法

mc watch 命令用于监视指定 MinIO 存储桶或本地文件系统路径上的事件。 对于 S3 服务,请使用 mc event add 在兼容 S3 的服务上配置存储桶事件通知。

你也可以将 mc watch 用于本地文件系统目录, 以获得与运行 inotify -e modify,create,delete,move 命令类似的结果。

以下命令会监视 myminio MinIO 部署中 mydata 存储桶内任意对象或前缀上的 事件

mc watch --recursive myminio/mydata

该命令语法如下:

mc [GLOBALFLAGS] watch                \
                 [--event "string"]   \
                 [--prefix "string"]  \
                 [--recursive]        \
                 [--suffix "string"]  \
                 ALIAS
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

必需 MinIO 部署的 alias 以及要监视已配置事件的存储桶完整路径。 例如:

mc watch myminio/mybucket
--event

mc-cmd

要监视的事件。使用英文逗号 , 分隔可指定多个事件。 支持的事件见 支持的存储桶事件

默认值为 put,delete, get

--prefix

mc-cmd

在该存储桶前缀下监视 --event 指定的事件。

例如,若 ALIASplay/mybucket,且 --prefixphotos,则仅 play/mybucket/photos 中的事件会触发存储桶通知。

--recursive, r

mc-cmd

在指定的 ALIAS 存储桶路径或本地目录中递归监视事件。

--suffix

mc-cmd

在该存储桶后缀下监视 --event 指定的事件。

例如,若 ALIASplay/mybucket,且 --suffix.jpg,则仅 play/mybucket/*.jpg 中的事件会触发存储桶通知。

全局标志

--json

mc-cmd

Optional

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

例如:

mc --json COMMAND

示例

监视存储桶中的事件

mc watch --recursive ALIAS/PATH
  • ALIAS 替换为 S3 兼容主机的 alias
  • PATH 替换为存储桶路径。

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

139 - mc idp ldap accesskey create

说明

新增: mc

RELEASE.2023-12-23T08-47-21Z

描述

mc idp ldap accesskey create 允许添加 LDAP 访问密钥对。

以下示例在 minio alias 上创建一个新的访问密钥对,并使用与已认证用户相同的策略:

mc idp ldap accesskey create minio/

该命令具有以下语法:

mc [GLOBALFLAGS] idp ldap accesskey create                   \
                                 ALIAS                       \
                                 [--access-key <value>]      \
                                 [--secret-key <value>]      \
                                 [--policy <value>]          \
                                 [--name <value>]            \
                                 [--description <value>]     \
                                 [--expiry <value>]          \
                                 [--expiry-duration <value>]
  • ALIAS 替换为已配置 AD/LDAP 集成的 MinIO 部署的 alias

  • 方括号 [] 表示可选参数。

  • 同一行中的参数彼此相互依赖。

  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

ALIAS

mc-cmd

Required

已配置 AD/LDAP 的 MinIO 部署的 alias

例如:

mc idp ldap accesskey create minio
--access-key

mc-cmd

Optional

用于该账户的访问密钥。 访问密钥不能包含 =(等号)或 ,(逗号)字符。

需要 --secret-key

--secret-key

mc-cmd

Optional

用于该账户的密钥。

需要 --access-key

--policy

mc-cmd

Optional

账户要使用的 JSON 格式策略文件路径。

如果未指定,账户将使用与已认证用户相同的策略。

--name

mc-cmd

Optional

用于该账户的人类可读名称。

--description

mc-cmd

Optional

为服务账户添加描述。 例如,你可以说明创建该访问密钥的原因。

--expiry-duration

mc-cmd

Optional

访问密钥对保持有效的时长,格式为 #d#h#s

例如,7d24h5d12h30s 都是有效字符串。

--expiry 互斥。

--expiry

mc-cmd

Optional

访问密钥在该日期之后过期。 日期请使用 YYYY-MM-DD 格式输入。

例如,要使凭证在 2024 年 12 月 31 日之后过期,请输入 2024-12-31

--expiry-duration 互斥。

--login

mc-cmd

Optional

注意

已弃用: RELEASE.2024-04-18T16-45-29Z

使用 mc idp ldap accesskey create-with-login 获取此前由该参数提供的功能。

提示用户使用 LDAP 凭证登录以生成访问密钥。 指定用于登录提示的、已配置 LDAP 的 MinIO Server URL。

需要交互式终端。

全局标志

此命令支持 全局标志 中的任意选项。

行为

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

示例

为已认证用户创建新的访问密钥对

以下命令会为 minio alias 上当前已认证用户创建一个新的访问密钥对。 该命令会输出随机生成的访问密钥和密钥。

mc idp ldap accesskey create minio

使用自定义访问密钥和密钥创建新的访问密钥对

以下命令会为 minio alias 上当前已认证用户创建一个新的访问密钥对,其中访问密钥和密钥都由你指定。

mc idp ldap accesskey create minio/ --access-key my-access-key-change-me --secret-key my-secret-key-change-me

创建 24 小时后过期的新访问密钥对

以下命令会为 minio alias 上当前已认证用户创建一个新的访问密钥对。 该凭证会在 24 小时后过期。

该命令会输出随机生成的访问密钥和密钥。

mc idp ldap accesskey create minio --expiry-duration 24h

创建新的访问密钥并提示以该用户身份登录

以下命令会创建一个新的访问密钥对。 MinIO Client 会先要求你在 minio.example.com 上已配置 LDAP 的 MinIO 站点中,以该访问密钥所属用户身份登录。

该命令会输出随机生成的访问密钥和密钥。

mc idp ldap accesskey create minio --login minio.example.com

创建在指定日期后过期的新访问密钥对

以下命令会为 minio alias 上当前已认证用户创建一个新的访问密钥对。 该凭证会在 2024 年 2 月 29 日之后过期。

该命令会输出随机生成的访问密钥和密钥。

mc idp ldap accesskey create minio --expiry 2024-02-29