跳转到主要内容

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

返回本页常规视图.

参考

Kubernetes、裸金属、S3 API、集成、发行与安全参考资料。

1 - mc ilm add

说明

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

mc ilm add 已由 mc ilm rule add 取代。

语法

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

该命令支持同时添加 Transition (Tiering)Expiration 生命周期管理规则。

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

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

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

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

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

已配置规则的效果如下:

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

该命令语法如下:

mc [GLOBALFLAGS] ilm add                                    \
                 [--prefix string]                          \
                 [--tags string]                            \
                 --expire-days "integer"                    \
                 [--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"]    \
                 ALIAS
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

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

参数

ALIAS

mc-cmd

Required

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

例如:

mc ilm add myminio/mydata
--prefix

mc-cmd

Optional

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

例如:

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

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

--tags

mc-cmd

Optional

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

此选项与以下选项互斥:

--expire-days

mc-cmd

Required

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

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

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

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

需要同时指定 --transition-tier

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

有关对象过渡的更完整文档,请参见 对象迁移(”Tiering”)

--transition-tier

mc-cmd

Optional

MinIO 将对象 过渡 到的远程层。 指定一个通过 mc admin tier 创建的现有远程层。

如果指定了 --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 将 非当前对象版本过渡 到的远程层。 指定一个通过 mc admin tier 创建的远程层。

--noncurrent-expire-newer

mc-cmd

Optional

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

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

下表列出了在 --noncurrent-expire-newer 3 下若干对象版本及其过期资格:

v5 (current version)

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

v4

保留

v3

保留

v2

保留

v1

标记为过期

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

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

更新此标志的数值只会影响尚未标记的对象版本。 如果提高保留数量,已标记为过期的版本不会改变。

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

全局标志

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

示例

在指定天数后过期存储桶中的所有内容

使用 mc ilm add--expire-days,可将存储桶内容标记为在对象创建后经过指定天数过期:

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

将前缀下的非当前对象版本过渡到其他层

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

mc ilm add --prefix "doc/" --transition-days "90" --trasition-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 add 命令与 --prefix--expire-days--noncurrent-expire-days 配合使用,可让对象的当前版本与非当前版本在不同时间过期。

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

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

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

行为

生命周期管理对象扫描器

MinIO 使用 scanner process 根据已配置的生命周期管理规则检查对象。 高 IO 负载或系统资源受限导致的慢速扫描可能会延迟生命周期管理规则的生效。 参见 生命周期管理对象扫描器 了解更多信息。

过期与过渡

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

S3 兼容性

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

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

2 - mc quota clear

说明

变更: RELEASE.2022-12-13T00-23-28Z

mc quota clear 替代了 mc admin bucket quota --clear

说明

变更: RELEASE.2024-07-31T15-58-33Z

mc quota clear 已弃用。

说明

mc quota clear 命令会移除存储桶上已配置的存储配额。

示例

清除已配置的存储桶配额

使用 mc quota clear 标志可从存储桶中移除配额。

mc quota clear TARGET/BUCKET
  • TARGET 替换为已配置 MinIO 部署的 alias。 将 BUCKET 替换为要清除配额的存储桶名称。

语法

mc quota clear 的语法如下:

mc quota clear TARGET [ARGUMENTS]

mc quota clear 支持以下参数:

TARGET

mc-cmd

Required

该命令为其创建配额的存储桶完整路径。 指定 MinIO 部署的 alias 作为路径前缀。 例如:

mc quota clear play/mybucket

全局标志

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

S3 兼容性

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

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

3 - MinIO 自定义资源定义

MinIO Operator 会安装一个 Custom Resource Definition (CRD),用于描述 MinIO Tenant 对象。 Operator 使用该 CRD 在 Kubernetes 集群中对 Tenant 资源进行配置和管理。

本页提供 CRD 参考文档,用于自定义由 Operator 部署的 Tenant。 本文档默认读者已熟悉其中引用的 Kubernetes 概念、工具和流程。

Operator CRD v2 参考

Package v2 - 本页提供 MinIO Operator Operator CRD v2 Reference CRD 的自动生成快速参考。 如需更完整的 MinIO Operator CRD 文档,请参阅 MinIO Kubernetes Documentation

Operator CRD v2 Reference API 随 MinIO Operator v4.0.0 一同发布。 MinIO Operator 会自动将使用 /v1 API 的现有租户转换为 /v2

Bucket

Bucket 描述默认创建的存储桶。

字段 说明

name string

region string

objectLock boolean

CertificateConfig

CertificateConfig (certConfig) 定义了在创建租户过程中由 Operator 自动生成的 TLS 证书的控制属性。 如果 spec.autoCert: false,这些字段不会生效。

字段 说明

commonName string

可选

与自动生成的 TLS 证书关联的 CommonNameCN 属性。

organizationName string array

可选

指定一个或多个与自动生成 TLS 证书关联的 OrganizationNameO 属性。

dnsNames string array

可选

指定一个或多个与自动生成 TLS 证书关联的 x.509 Subject Alternative Names (SAN)。MinIO Server Pod 会根据请求的主机名使用 SNI 判断应返回哪个证书。

CertificateStatus

CertificateStatus 用于跟踪由 Operator 管理的所有证书。

  • TenantStatus
字段 说明

autoCertEnabled boolean

AutoCertEnabled 用于记录我们是否已知该租户启用了 autocert。

customCertificates CustomCertificates

提供手动添加到 Operator 的 clientminiominioCAs 自定义 TLS 证书的信息。

CustomCertificateConfig

CustomCertificateConfig (customCertificateConfig) 提供在创建租户过程中 手动添加到 Operator 的 TLS 证书相关属性。 如果不存在自定义 TLS 证书,这些字段不包含数据。

字段 说明

certName string

可选

输出与手动提供的 TLS 证书关联的一个或多个 CertName 属性。

domains string array

可选

输出与手动提供的 TLS 证书关联的一个或多个 Domains 属性。

expiry string

可选

输出与手动提供的 TLS 证书关联的一个或多个 Expiry 属性。

expiresIn string

可选

输出与手动提供的 TLS 证书关联的一个或多个 ExpiresIn 属性。

serialNo string

可选

输出与手动提供的 TLS 证书关联的一个或多个 SerialNo 属性。

CustomCertificates

CustomCertificates (customCertificates) 提供在创建租户过程中 手动添加到 Operator 的 TLS 证书分组。 如果不存在自定义 TLS 证书,这些字段不包含数据。

字段 说明

client CustomCertificateConfig array

可选

客户端

minio CustomCertificateConfig array

可选

MinIO

minioCAs CustomCertificateConfig array

可选

证书颁发机构

ExposeServices

ExposeServices (exposeServices) 定义 MinIO 对象存储和 Console 服务的暴露方式。

字段 说明

minio boolean

可选

指示 Operator 暴露 MinIO 服务。默认为 false

console boolean

可选

指示 Operator 暴露 MinIO Console 服务。默认为 false

Features

Features (features) - 描述要在 MinIO 租户中启用或禁用哪些 MinIO 功能的对象。

字段 说明

bucketDNS boolean

可选

指定 true 以允许客户端使用 DNS 路径 <bucket>.minio.default.svc.cluster.local 访问存储桶。默认为 false

domains TenantDomains

可选

指定用于访问 MinIO 和 Console 的域名列表。

enableSFTP boolean

可选

以启用 SFTP 支持的方式启动 minio server。

HealthStatus (string)

HealthStatus 表示租户是否处于健康、服务降级或离线状态。

  • TenantStatus

KESConfig

KESConfig (kes) 定义作为 MinIO 租户一部分部署的 MinIO Key Encryption Service (KES) StatefulSet 配置。 KES 支持使用外部密钥管理服务 (KMS) 对对象执行服务端加密。

字段 说明

replicas integer

可选

指定要在租户中部署的 KES Pod 副本数量。 默认为 2

image string

可选

imagePullPolicy PullPolicy

可选

MinIO Docker 镜像的拉取策略。可指定以下值:

  • Always

  • Never

  • IfNotPresent(默认)

详细信息请参阅 Kubernetes 文档:https://kubernetes.io/docs/concepts/containers/images#updating-images

serviceAccountName string

可选

用于运行作为租户一部分创建的 MinIO KES Pod 的 Kubernetes Service Account

kesSecret LocalObjectReference

必填

指定一个包含环境变量的 Kubernetes opaque secret,用于设置 MinIO KES 服务。

示例请参阅 Operator v7.1.1 KES 配置 Secret

externalCertSecret LocalCertificateReference

可选

为租户中的每个 MinIO KES Pod 启用带 SNI 支持的 TLS。 如果省略 externalCertSecret spec.requestAutoCert 设置为 false, 则 MinIO KES Pod 会在 未启用 TLS 的情况下部署。

指定一个 Kubernetes TLS secret。MinIO Operator 会将指定证书复制到租户中的每个 MinIO Pod。 当 MinIO Pod/Service 响应 TLS 连接请求时,会使用 SNI 选择 subjectAlternativeName 匹配的证书。

指定一个包含以下字段的对象:

  • - name - 包含 TLS 证书的 Kubernetes secret 名称。

  • - type - 指定 kubernetes.io/tls

有关为 MinIO 租户配置 TLS 的示例和更完整文档, 请参阅 MinIO Operator CRD 参考。

clientCertSecret LocalCertificateReference

可选

指定一个包含自定义根证书颁发机构和 x.509 证书的 Kubernetes TLS secret,用于与外部 Key Management Service (例如 Hashicorp Vault)执行 mTLS 认证。

指定一个包含以下字段的对象:

  • - name - 包含证书颁发机构和 x.509 证书的 Kubernetes secret 名称。

  • - type - 指定 kubernetes.io/tls

gcpCredentialSecretName string

可选

指定 KES 用于向 GCP key store 进行身份验证的 GCP 默认凭证

gcpWorkloadIdentityPool string

可选

指定 workload identity pool 名称(生成 service account token 时必需)

annotations object (keys:string, values:string)

可选

如果提供,则将这些 annotations 用于 KES 对象元数据注解。

labels object (keys:string, values:string)

可选

如果提供,则将这些 labels 用于 KES 对象元数据标签。

resources ResourceRequirements

可选

用于在 MinIO 租户中指定 CPU 和内存 resource allocations 或限制的对象规范。

nodeSelector object (keys:string, values:string)

可选

Operator 在选择要部署 MinIO KES Pod 的节点时应用的筛选条件。 Operator 仅会选择标签与指定 selector 匹配的节点。

更多信息请参阅 Kubernetes 文档中的 Assigning Pods to Nodes

tolerations Toleration array

可选

指定一个或多个要应用到 MinIO KES Pod 的 Kubernetes tolerations

affinity Affinity

可选

为 KES Pod 指定 node affinity、pod affinity 和 pod anti-affinity。

topologySpreadConstraints TopologySpreadConstraint array

可选

指定一个或多个要应用到 MinIO 池中部署 Pod 的 Kubernetes Topology Spread Constraints

keyName string

可选

如果提供,则将其用作 KES 在 KMS 后端创建的密钥名称。

securityContext PodSecurityContext

指定 MinIO KES Pod 的 Security Context。 Operator 仅支持以下 Pod 安全字段:

  • fsGroup

  • fsGroupChangePolicy

  • runAsGroup

  • runAsNonRoot

  • runAsUser

  • seLinuxOptions

containerSecurityContext SecurityContext

指定 MinIO KES Pod 的 Security Context

env EnvVar array

可选

如果提供,MinIO Operator 在部署 KES 资源时会添加指定的环境变量。

LocalCertificateReference

LocalCertificateReference (externalCertSecret, externalCaCertSecret,clientCertSecret) 包含一个 Kubernetes secret, 其中存放用于在 MinIO 租户中启用 TLS 的 TLS 证书或证书颁发机构文件。

字段 说明

name string

必填

包含 TLS 证书或证书颁发机构文件的 Kubernetes secret 名称。

type string

必填

Kubernetes secret 的类型。指定 kubernetes.io/tls

Logging

Logging 描述 MinIO 租户的日志记录。

字段 说明

json boolean

anonymous boolean

quiet boolean

Pool

Pool (pools) 定义租户上的一个 MinIO server pool。 每个 pool 由一组 MinIO server Pod 组成, 这些 Pod 通过“池化”其存储资源来支持对象存储和检索请求。 每个 server pool 都独立于其他 pool, 并支持对 MinIO 租户中可用存储资源进行水平扩展。

有关 pools 对象的示例和更完整文档,请参阅 MinIO Operator CRD 参考。

字段 说明

name string

必填 指定 pool 名称。 如果省略此字段,Operator 会自动生成 pool 名称。

servers integer

必填

要在该 pool 中部署的 MinIO server Pod 数量。最小值为 2

MinIO Operator 要求每个 pool 至少有 4 个卷。 具体来说, pools.servers X pools.volumesPerServer 的结果必须大于 4

volumesPerServer integer

必填

为该 pool 中每个 MinIO server Pod 生成的 Persistent Volume Claim 数量。

MinIO Operator 要求每个 pool 至少有 4 个卷。 具体来说, pools.servers X pools.volumesPerServer 的结果必须大于 4

volumeClaimTemplate PersistentVolumeClaim

必填

指定 MinIO Operator 为 MinIO 租户生成 Persistent Volume Claim 时使用的配置选项。

resources ResourceRequirements

可选

用于在 MinIO 租户中指定 CPU 和内存 resource allocations 或限制的对象规范。

nodeSelector object (keys:string, values:string)

可选

Operator 在选择要在哪些节点部署该 pool Pod 时应用的筛选条件。 Operator 仅会选择标签与指定 selector 匹配的节点。

更多信息请参阅 Kubernetes 文档中的 Assigning Pods to Nodes

affinity Affinity

可选

为 MinIO pool 中的 Pod 指定 node affinity、pod affinity 和 pod anti-affinity。

tolerations Toleration array

可选

指定一个或多个要应用到 MinIO pool 中部署 Pod 的 Kubernetes tolerations

topologySpreadConstraints TopologySpreadConstraint array

可选

指定一个或多个要应用到 MinIO pool 中部署 Pod 的 Kubernetes Topology Spread Constraints

securityContext PodSecurityContext

可选

指定 pool 中 Pod 的 Security Context。 Operator 仅支持以下 Pod 安全字段:

  • fsGroup

  • fsGroupChangePolicy

  • runAsGroup

  • runAsNonRoot

  • runAsUser

containerSecurityContext SecurityContext

指定 pool 中容器的 Security Context。 Operator 仅支持以下容器安全字段:

  • runAsGroup

  • runAsNonRoot

  • runAsUser

annotations object (keys:string, values:string)

可选

指定要追加到 Pool 的自定义 labels 和 annotations。 可选

如果提供,则将这些 annotations 用于 Pool 对象元数据注解 (StatefulSet 和 Pod 模板)。

labels object (keys:string, values:string)

可选

如果提供,则将这些 labels 用于 Pool 对象元数据标签 (StatefulSet 和 Pod 模板)。

runtimeClassName string

可选

如果提供,StatefulSet 中的每个 Pod 都将使用指定的 RuntimeClassName 运行。 更多信息请参阅 https://kubernetes.io/docs/concepts/containers/runtime-class/

PoolState (string)

PoolState 表示 pool 的状态。

PoolStatus

PoolStatus 用于跟踪所有 pool 及其当前状态。

  • TenantStatus
字段 说明

ssName string

state PoolState

legacySecurityContext boolean

LegacySecurityContext 表示旧版 SecurityContext。它表示该 pool 创建于 v4.2.3 之前, 当时我们引入了默认的非 root securityContext, 因此应继续在不设置 Security Context 的情况下运行此 pool。

PoolsMetadata

PoolsMetadata (poolsMetadata) 为 MinIO pool statefulset / pod 定义自定义 labels 和 annotations。

字段 说明

labels object (keys:string, values:string)

可选

如果提供,则将这些 labels 追加到 MinIO statefulset / pod。

annotations object (keys:string, values:string)

可选

如果提供,则将这些 annotations 追加到 MinIO statefulset / pod。

ServiceMetadata

ServiceMetadata (serviceMetadata) 为 MinIO Object Storage 服务 和/或 MinIO Console 服务定义自定义 labels 和 annotations。

字段 说明

minioServiceLabels object (keys:string, values:string)

可选

如果提供,则将这些 labels 追加到 MinIO 服务。

minioServiceAnnotations object (keys:string, values:string)

可选

如果提供,则将这些 annotations 追加到 MinIO 服务。

consoleServiceLabels object (keys:string, values:string)

可选

如果提供,则将这些 labels 追加到 Console 服务。

consoleServiceAnnotations object (keys:string, values:string)

可选

如果提供,则将这些 annotations 追加到 Console 服务。

kesServiceLabels object (keys:string, values:string)

可选

如果提供,则将这些 labels 追加到 KES 服务。

kesServiceAnnotations object (keys:string, values:string)

可选

如果提供,则将这些 annotations 追加到 KES 服务。

SideCars

SideCars (sidecars) 定义了一个容器列表, Operator 会将其附加到 pool 中的每个 MinIO server Pod。

字段 说明

containers Container array

可选

要在 Pod 内运行的容器列表。

volumeClaimTemplates PersistentVolumeClaim array

可选

volumeClaimTemplates 是 Pod 允许引用的 claim 列表。 StatefulSet controller 负责以保持 Pod 身份的方式将网络身份映射到 claim。 该列表中的每个 claim 都必须在模板中的某个容器里至少有一个同名的 volumeMount 与之匹配。对于同名项,此列表中的 claim 优先于模板中的任意 volume。

volumes Volume array

可选

可由该 Pod 所属容器挂载的 volume 列表。 更多信息:https://kubernetes.io/docs/concepts/storage/volumes

resources ResourceRequirements

可选

sidecar 的资源配置;如果设置,initcontainer 也会使用该配置。

Tenant

Tenant 是一个 Kubernetes object 对象,用于描述 MinIO 租户。

  • TenantList
字段 说明

apiVersion string

Operator CRD v2 Reference

kind string

Tenant

metadata ObjectMeta

metadata 字段请参阅 Kubernetes API 文档。

scheduler TenantScheduler

spec TenantSpec

必填

MinIO 租户对象的根字段。

TenantDomains

TenantDomains (domains) - 用于从 Kubernetes 集群外部访问租户的域名列表。 这只会为列出的域名配置 MinIO,但仍需要额外的外部 DNS 配置。 如果使用了 schema 和端口,列出的域名应包含它们,例如 https://minio.domain.com:8123

字段 说明

minio string array

MinIO 使用的域名列表。 这将启用对象存储的 DNS 风格访问方式, 其中存储桶名称会从域名中的子域推导出来。

console string

用于暴露 MinIO Console 的域名。 这会在通过浏览器访问时为 MinIO 配置重定向。 如果 Console 通过子路径暴露,域名中也应包含该子路径,例如 https://console.domain.com:8123/subpath/

TenantScheduler

TenantScheduler (scheduler) - 描述用于部署 MinIO 租户的 Kubernetes Scheduler 的对象。

字段 说明

name string

可选

指定用于调度 Tenant Pod 的 Kubernetes scheduler 名称。

TenantSpec

TenantSpec (spec) 定义 MinIO 租户对象的配置。

以下参数特指作为 MinIO Operator v4.0.0 一部分引入的 Operator CRD v2 Reference MinIO CRD API spec 定义。

有关该对象的更完整文档,请参阅 MinIO Kubernetes Documentation

字段 说明

pools Pool array

必填

描述部署在 MinIO 租户中的各个 MinIO server pool 的对象数组。 每个 pool 由一组 MinIO server Pod 组成,这些 Pod 通过汇聚其存储资源来支持对象存储和检索请求。 每个 server pool 都独立于其他 pool,并支持在 MinIO 租户中横向扩展可用存储资源。

MinIO 租户 specpools 数组 必须 至少包含 一个 元素。

有关 pools 对象的示例和更完整文档, 请参阅 MinIO Operator CRD 参考。

image string

可选

imagePullSecret LocalObjectReference

可选

指定从私有 Docker 仓库拉取镜像时使用的 Secret。

podManagementPolicy PodManagementPolicyType

可选

StatefulSet 创建 Pod 时使用的 Pod 管理策略。

env EnvVar array

可选

如果提供,MinIO Operator 在部署租户资源时会添加指定的环境变量。

externalCertSecret LocalCertificateReference array

可选

为租户中的每个 MinIO Pod 启用带 SNI 支持的 TLS。 如果省略 externalCertSecret requestAutoCert 设置为 false, 则 MinIO 租户会在 未启用 TLS 的情况下部署。

指定一个 Kubernetes TLS secret 数组。MinIO Operator 会将指定证书复制到租户中的每个 MinIO server Pod。当 MinIO Pod/Service 响应 TLS 连接请求时,会使用 SNI 选择 subjectAlternativeName 匹配的证书。

externalCertSecret 数组中的每个元素都是一个包含以下字段的对象:

  • - name - 包含 TLS 证书的 Kubernetes secret 名称。

  • - type - 指定 kubernetes.io/tls

有关为 MinIO 租户配置 TLS 的示例和更完整文档, 请参阅 MinIO Operator CRD 参考。

externalCaCertSecret LocalCertificateReference array

可选

允许 MinIO server Pod 验证由 Pod 信任存储之外的证书颁发机构签发的客户端 TLS 证书。

指定一个 Kubernetes TLS secret 数组。MinIO Operator 会将指定证书复制到租户中的每个 MinIO server Pod。

externalCertSecret 数组中的每个元素都是一个包含以下字段的对象:

  • - name - 包含证书颁发机构的 Kubernetes secret 名称。

  • - type - 指定 kubernetes.io/tls.

有关为 MinIO 租户配置 TLS 的示例和更完整文档, 请参阅 MinIO Operator CRD 参考。

externalClientCertSecret LocalCertificateReference

可选

在 MinIO 租户 Pod 与 MinIO KES 之间启用 mTLS 认证。 要启用 MinIO 租户与 MinIO KES 之间的连通性,此项为 必填

指定一个 Kubernetes TLS secret。MinIO Operator 会将指定证书复制到租户中的每个 MinIO server Pod。该 secret 必须 包含以下字段:

  • name - 包含 TLS 证书的 Kubernetes secret 名称。

  • type - 指定 kubernetes.io/tls

指定的证书 必须 对应 KES server 上的一个身份。 有关 KES 身份的更多信息,请参阅 KES Wiki

如果使用 MinIO Operator 部署 KES,请将该证书的哈希值作为 kes 对象规范的一部分。

有关为 MinIO 租户配置 TLS 的示例和更完整文档, 请参阅 MinIO Operator CRD 参考。

externalClientCertSecrets LocalCertificateReference array

可选

支持将额外客户端证书挂载到 MinIO 租户 Pod 中。 多个客户端证书将按以下目录结构挂载:

certs/
├── client-0/
│   ├── client.crt
│   └── client.key
├── client-1/
│   ├── client.crt
│   └── client.key
└── client-2/
    ├── client.crt
    └── client.key

指定一个 Kubernetes TLS secret。MinIO Operator 会将指定证书复制到租户中的每个 MinIO server Pod,之后可通过环境变量引用。该 secret 必须 包含以下字段:

  • name - 包含 TLS 证书的 Kubernetes secret 名称。

  • type - 指定 kubernetes.io/tls

mountPath string

可选

MinIO 卷(PV)的挂载路径。默认值为 /export

subPath string

可选

挂载路径内的子路径。这是 MinIO 存储数据的目录。 默认值为 ""(空)。

requestAutoCert boolean

可选

启用使用 基于 Kubernetes 的 TLS 证书生成 与签发机制,为 MinIO 租户中的 Pod 和 Service 生成并签发证书。

  • 指定 true 以显式启用自动证书生成(默认)。

  • 指定 false 以禁用自动证书生成。

如果 requestAutoCert 设置为 false 省略了 externalCertSecret, 则 MinIO 租户会在 未启用 TLS 的情况下部署。

有关为 MinIO 租户配置 TLS 的示例和更完整文档, 请参阅 MinIO Operator CRD 参考。

certExpiryAlertThreshold integer

CertExpiryAlertThreshold 表示在触发证书即将过期告警前,最少需要剩余的天数。

liveness Probe

用于容器存活性检查的 Liveness Probe。 如果探测失败,容器会重启。

readiness Probe

用于容器就绪性检查的 Readiness Probe。 如果探测失败,容器会从服务端点中移除。

startup Probe

Startup Probe 允许为 Pod 启动配置最长宽限期, 在此之前不会开始向其路由流量。

lifecycle Lifecycle

容器的 Lifecycle hook。

features Features

可启用或禁用与 S3 相关的功能,例如 bucketDNS 等。

certConfig CertificateConfig

可选

启用为 Operator 自动生成的所有 TLS 证书设置 CommonNameOrganizationdnsName 属性。 如果 requestAutoCertfalse, 则配置该对象不会生效。

kes KESConfig

可选

指示 MinIO Operator 使用指定配置部署 MinIO Key Encryption Service (KES)。 MinIO KES 支持在 MinIO 租户上对对象执行服务端加密。

prometheusOperator boolean

可选

指示 MinIO Operator 使用 Prometheus Operator。

租户的 scrape 配置会添加到由 prometheus-operator 管理的 Prometheus 中。

serviceAccountName string

可选

用于运行作为租户一部分创建的 MinIO Pod 的 Kubernetes Service Account

priorityClassName string

可选

指示 Pod 的优先级,即其相对于集群中其他 Pod 的重要程度。 这仅应用于 MinIO Pod。

更完整的文档请参阅 Kubernetes 的 Priority Class 文档

imagePullPolicy PullPolicy

可选

MinIO Docker 镜像的拉取策略。可指定以下值:

  • Always

  • Never

  • IfNotPresent(默认)

详细信息请参阅 Kubernetes 文档:https://kubernetes.io/docs/concepts/containers/images#updating-images

sideCars SideCars

可选

作为 sidecar 随租户中每个 MinIO Pod 一同运行的容器列表。

exposeServices ExposeServices

可选

指示 Operator 暴露 MinIO 和/或 Console 服务。

serviceMetadata ServiceMetadata

可选

指定要追加到 MinIO 服务和/或 Console 服务的自定义 labels 和 annotations。

poolsMetadata PoolsMetadata

可选

指定要追加到所有 pool StatefulSet 和 Pod 的自定义 labels 和 annotations。

users LocalObjectReference array

可选

一个用于在租户置备期间生成 MinIO 用户的 Kubernetes opaque secret 数组。

数组中的每个元素都是一个由键值对 name: <string> 组成的对象, 其中 <string> 引用一个 Kubernetes opaque secret。

每个被引用的 Kubernetes secret 都必须包含以下字段:

  • CONSOLE_ACCESS_KEY - MinIO 用户的“用户名”

  • CONSOLE_SECRET_KEY - MinIO 用户的“密码”

Operator 默认会为每个用户分配 consoleAdmin policy。 Tenant 启动后,你可以修改分配给它的 policy。

buckets Bucket array

可选

在创建新租户时创建存储桶。 如果给定名称的存储桶已存在,则跳过。

logging Logging

可选

为 MinIO 租户启用 JSON 和 Anonymous 日志。

configuration LocalObjectReference

可选

指定一个包含额外环境变量配置的 Secret,供 MinIO pool 使用。 该 Secret 应包含一个名为 config.env 的键, 其中包含 MinIO+ 的所有导出环境变量。

initContainers Container array

可选

向 StatefulSet 添加自定义 initContainer。

additionalVolumes Volume array

可选

如果提供,StatefulSet 将附加这些 volume。 你应为对应的 volume 和 volumeMount 设置规则。 Operator 不会验证这些规则,最终结果以 Kubernetes 为准。

additionalVolumeMounts VolumeMount array

可选

如果提供,StatefulSet 将附加这些 volume mount。 你应为对应的 volume 和 volumeMount 设置规则。 Operator 不会验证这些规则,最终结果以 Kubernetes 为准。

TenantUsage

TenantUsage 是关于租户使用量和容量的指标。

  • TenantStatus
字段 说明

capacity integer

该租户的可用容量,单位为字节。

rawCapacity integer

该租户的原始容量,单位为字节。

usage integer

由 MinIO 管理的数据量,单位为字节。

rawUsage integer

磁盘上的原始使用量,单位为字节。

tiers TierUsage array

Tiers 包含租户中各个 tier 的使用情况。

TierUsage

TierUsage 表示租户配置的某个 tier 的使用情况。

字段 说明

Name string

tier 名称。

Type string

tier 类型。

totalSize integer

该 tier 的总使用量。

4 - 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

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

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 标志。

全局选项

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

4.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:secret@minio.mysite.tld: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:secret@myminio.cloudprovider.tld: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:secret@myminio.cloudprovider.tld: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:secret@minio.mysite.tld/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:secret@minio.mysite.tld/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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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

全局标志

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

4.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/

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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:zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG@play.min.io

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 中设置的加密密钥匹配。

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

4.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 中导出别名配置。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 权限,才能描述该部署上的作业。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 分层的完整信息,请参阅受支持分层目标的文档:

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 来更新注册。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 时才需要提供此值。

全局标志

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

4.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/

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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\

4.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

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 批处理作业参考

4.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 指定迁移内容使用的加密类型。 这会在更改存储桶默认设置 之前,手动修改存储桶内容的加密设置或加密状态。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 分层的更完整信息,请参阅受支持分层目标的相关文档:

4.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

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 标志。

全局标志

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

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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>,并在需要时包含前缀和/或对象名称。

全局标志

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

4.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 个驱动器的统计信息。

全局标志

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

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 服务器上作业事件的汇总信息。

4.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 权限,才能列出该部署上的作业。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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

4.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:secret@myminio.cloudprovider.tld: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:secret@minio.mycloud.tld: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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 或负数。

全局标志

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

4.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

两次指标请求之间的间隔(秒)。

默认情况下,命令每秒请求一次指标。

全局参数

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

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 权限。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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

全局标志

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

4.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

以逗号分隔的节点列表,用于指定从哪些节点收集指标。

全局标志

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

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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

全局标志

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

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 不会 触发对先前已同步对象的重新复制。

4.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 ...]

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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

4.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 模式 自动加密写入该存储桶的对象。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令用于从存储桶中移除事件通知触发器。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 提供程序的现有配置集。

4.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 从本地服务器中删除指定的访问密钥。

4.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

4.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 命令显示用户、组和/或策略的映射关系列表。

4.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 替换为此配置的唯一字符串。 如果未指定,命令将禁用默认配置值。

全局标志

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

4.113 - mc ilm

描述

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

使用这些命令可以:

  • 创建层
  • 创建 分层 规则
  • 管理存储桶中对象的 过期 规则

子命令

mc ilm 包含以下子命令:

子命令

描述

restore

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

rule

mc ilm rule 命令及其子命令用于配置 MinIO 生命周期管理中对象在各存储层之间转换所使用的规则。

tier

mc ilm tier 命令及其子命令用于为 MinIO 的 生命周期管理:对象过渡(“分层”) 配置受支持的远程 S3 兼容服务。

4.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)对象锁定。

4.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 命令为部署替换许可证密钥。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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

4.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

4.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

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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

4.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 命令用于修改现有的 存储桶复制规则

4.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 设置。 你还可以为存储桶设置默认对象锁定设置,使未显式配置对象锁定的所有对象继承该存储桶默认值。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 会在可配置的时间限制后过期。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令的输出。

4.133 - mc tag

说明

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

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

子命令

mc tag 包含以下子命令:

子命令

说明

list

mc tag list 命令列出存储桶或对象上的所有标签。

remove

mc tag remove 命令用于移除存储桶或对象上的所有标签。

set

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

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

4.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

5 - mc ilm edit

说明

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

mc ilm edit 已被 mc ilm rule edit 取代。

语法

mc ilm edit 命令用于修改 MinIO 存储桶上现有的对象生命周期管理规则。

以下命令用于修改 myminio 部署上 mydata 存储桶的现有生命周期管理规则:

mc ilm edit --id "c79ntj94b0t6rukh6lr0" --expiry-days 90  mydata/myminio

mc ilm edit --id "c79nu2p4b0t6qko19rgg" --expired-object-delete-marker mydata/myminio

mc ilm edit --id "c79n19dn10dnab109fg1" --transition-days 30 --tier "COLDTIER"

该命令按如下方式修改指定规则:

  • 删除对象创建时间超过 90 天的对象。
  • 如果对象没有其他剩余版本,则删除 DeleteMarker 墓碑标记。
  • 将对象创建时间超过 30 天的对象转移到 COLDTIER 远程层。

命令语法如下:

mc [GLOBALFLAGS] ilm edit \
                 --id "string"                                                                                        \
                 [--prefix "string"]                                                                                  \
                 [--enable]                                                                                           \
                 [--disable]                                                                                          \
                 [--expiry-days "string" | --expired-object-delete-marker]                                            \
                 [--transition-days "string"] --tier "string"                                                \
                 [--noncurrentversion-expiration-days "string"]                                                       \
                 [--noncurrentversion-transition-days "string" --noncurrentversion-tier "string"] \
                 [--tags]                                                                                             \
                 ALIAS
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

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

参数

ALIAS

mc-cmd

Required

需要指定 MinIO 部署的 alias 以及要修改对象生命周期管理规则的存储桶完整路径。例如:

mc ilm 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 edit --prefix "meetingnotes/" myminio/mydata/ --expiry-days "90"

该命令修改一条规则:对 myminio ALIAS 中 mydata 存储桶内所有带有 meetingnotes/ 前缀的对象,在 90 天后过期。

--expiry-days

mc-cmd

Optional

对象创建后保留的天数。达到指定天数后,MinIO 会将对象标记为待删除。

使用此选项时请谨慎,其行为可能导致已上传对象立即过期。任何在指定过期日期 之后 创建的对象都会自动满足过期条件。 同样地,如果指定的日历日期 早于 当前系统主机时间日期,则规则覆盖的所有对象都会被标记为删除。 一旦指定日历日期已过,建议立即移除使用此选项的 ILM 规则。

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

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

与以下选项互斥:

更多信息请参见 对象删除

--expired-object-delete-marker

mc-cmd

Optional

指定此选项可指示 MinIO 删除没有剩余对象版本的对象的删除标记。 具体而言,删除标记是给定对象唯一剩余的“版本”。

此选项与以下选项互斥:

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

--noncurrentversion-expiration-days

mc-cmd

Optional

对象版本变为 非当前(即该对象的另一个版本现在是 HEAD)后保留的天数。 达到指定天数后,MinIO 会将非当前对象版本标记为待删除。

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

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

--noncurrentversion-transition-days

mc-cmd

Optional

对象处于非当前状态(即已被同一对象的新版本替换)达到指定天数后, MinIO 会将该对象版本标记为可转移。 系统主机时间日期超过该日历日期后,MinIO 会将对象转移到 --tier 指定的远程存储层。

此选项对未启用版本控制的存储桶无效。必须同时指定 --noncurrentversion-tier

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

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

--noncurrentversion-tier

mc-cmd

Optional

MinIO 将 非当前对象版本转移 到的远程存储层。 指定一个由 mc admin tier 创建的远程存储层。

MinIO 不会 自动将对象从先前指定的远程层迁移到新的远程层。 对于存储在旧远程层上的对象,MinIO 仍会继续路由请求。

--newer-noncurrentversions-expiration

mc-cmd

Optional

应用过期规则前要保留的对象非当前版本数量。 超过指定数量的更旧非当前版本会过期。

默认情况下,当过期规则生效时,MinIO 不保留任何非当前版本。

--newer-noncurrentversions-transition

mc-cmd

Optional

要保留在当前存储层上的对象非当前版本数量。 超过指定数量的更旧非当前版本会转移到指定层。

默认情况下,当转移规则生效时,MinIO 会转移所有非当前版本。

--tags

mc-cmd

Optional

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

此选项与以下选项互斥:

--transition-days

mc-cmd

Optional

对象创建后经过的日历天数,超过该值后 MinIO 会将对象标记为可转移。 MinIO 会将对象转移到 --tier 指定的远程存储层。

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

必须同时指定 --tier

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

--tier

mc-cmd

Optional

MinIO 将 对象转移 到的远程存储层。 指定一个由 mc admin tier 创建的远程存储层。

若指定 --transition-days,则此选项为必需。

MinIO 不会 自动将对象从先前指定的远程层迁移到新的远程层。 对于存储在旧远程层上的对象,MinIO 仍会继续路由请求。

全局标志

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

示例

修改现有生命周期管理规则

使用 mc ilm edit 搭配 --id 修改现有对象过期规则:

mc ilm edit ALIAS/PATH --id "RULEID" [FLAGS]
  • ALIAS 替换为 S3 兼容主机的 alias
  • PATH 替换为该 S3 兼容主机上的存储桶路径。
  • RULEID 替换为对象生命周期管理规则的唯一 ID。 使用 mc ilm rule ls 查找 RULEID
  • 指定任意附加标志以添加或修改生命周期管理规则。 例如,指定 --transition-days 以覆盖该规则现有的转移天数值。

禁用生命周期管理规则

使用 mc ilm edit 搭配 --disable 停止使用现有管理规则。

mc ilm edit --id "RULEID" --disable myminio/mybucket
  • RULEID 替换为对象生命周期管理规则的唯一 ID。 使用 mc ilm rule ls 查找 RULEID
  • myminio 替换为规则所在部署的 ALIAS。
  • mybucket 替换为该规则对应的存储桶。

行为

S3 兼容性

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

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

6 - mc quota info

说明

变更: RELEASE.2022-12-13T00-23-28Z

mc quota info 替代了 mc admin bucket quota

说明

变更: RELEASE.2024-07-31T15-58-33Z

mc quota info 已弃用。

说明

mc quota info 命令显示存储桶当前配置的配额。

示例

获取存储桶配额配置

使用 mc quota info 获取存储桶当前的配额配置:

mc quota info TARGET/BUCKET

TARGET 替换为已配置 MinIO 部署的 alias。 将 BUCKET 替换为要查询配额的存储桶名称。

语法

mc quota info 的语法如下:

mc quota info TARGET

mc quota info 支持以下参数:

TARGET

mc-cmd

Required

要为其创建配额的存储桶完整路径。 指定 MinIO 部署的 alias 作为路径前缀。 例如:

mc quota play/mybucket

全局标志

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

S3 兼容性

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

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

7 - MinIO Operator 环境变量

MinIO Operator 在启动期间使用以下环境变量来设置配置项。 请在 minio-operator 容器中配置这些变量。

在 Kubernetes 中设置环境变量

要设置这些环境变量,请修改 Operator 容器 YAML 中的 .spec.env,或使用以下 kubectl 命令语法:

kubectl set env -n minio-operator deployment/minio-operator <ENV_VARIABLE>=<value> ... <ENV_VARIABLE2>=<value2>

替换:

  • 如果未使用默认值,将 minio-operator 替换为你的 Operator 所在命名空间。
  • 如果未使用默认值,将 deployment/minio-operator 替换为你的 Operator 对应 deployment。 (大多数部署使用默认值。)
  • <ENV_VARIABLE> 替换为要设置或修改的环境变量。
  • <value> 替换为该环境变量要使用的值。

你可以使用空格分隔多个 VARIABLE=value 键值对,以设置或修改多个环境变量。

可用的 MinIO Operator 环境变量

MINIO_OPERATOR_CERTIFICATES_VERSION

envvar

指定要使用的证书 API 版本。

有效值为 v1v1beta1

未指定时,默认使用 Kubernetes 提供的 API。

MINIO_OPERATOR_RUNTIME

envvar

指定要使用的运行时类型。

有效值为 EKSRancherOpenShift。 如果以上选项均不适用,则留空。

当设置为 EKS 时,MINIO_OPERATOR_CSR_SIGNER_NAME 必须为 beta.eks.amazonaws.com/app-serving

MINIO_OPERATOR_CSR_SIGNER_NAME

envvar

覆盖证书签名请求(CSR)的默认签名者。

未指定时,默认值为 kubernetes.io/kubelet-serving

OPERATOR_CERT_PASSWD

envvar

可选

Operator 用于解密其 TLS 证书中私钥的密码。

OPERATOR_STS_ENABLED

envvar

将 STS Service 切换为 onoff

说明

变更: v5.0.11

未指定时,默认值为 on

在 Operator 5.0.11 之前的版本中,默认值为 off

MINIO_CONSOLE_DEPLOYMENT_NAME

envvar

用于 Operator Console 的名称。

未指定时,默认值为 operator

MINIO_CONSOLE_TLS_ENABLE

envvar

将 Console TLS 服务切换为 onoff

未指定时,默认值为 off

MINIO_OPERATOR_IMAGE

envvar

说明

新增: v5.0.11

指定由 Operator 加载的 MinIO 实例 sidecar 容器镜像。

省略该项则使用 Operator 镜像。

WATCHED_NAMESPACE

envvar

Operator 监视租户时应监视的命名空间列表,以逗号分隔。

未指定时,默认值为 "",即监视所有命名空间。

8 - Silo 客户端管理

Silo 客户端 mc 提供 mc admin 命令,用于在 Silo 与兼容的 MinIO 部署上执行管理任务。

虽然 mc 支持通用 S3 兼容服务,但 mc admin 使用 MinIO 专用管理 API,因此仅支持 Silo 或兼容的 MinIO 部署。

mc admin 语法如下:

mc admin [FLAGS] COMMAND [ARGUMENTS]

命令速查

下表列出了 mc admin 命令:

命令

说明

mc admin accesskey

mc admin accesskey 命令及其子命令用于为 MinIO 部署中内部管理的用户创建和管理 Access Keys

mc admin cluster bucket

mc admin cluster bucket 命令及其子命令提供了用于手动导入和导出 MinIO 存储桶元数据的工具。

mc admin cluster iam

mc admin cluster iam 命令及其子命令提供了用于手动导入和导出 MinIO 身份与访问管理(IAM) 元数据的工具。

mc admin decommission

mc admin decommission 命令用于启动 MinIO 服务器池s 的下线流程。下线流程适用于移除较旧的服务器池,这些服务器池的硬件能力或性能已不再满足要求, 或相较部署中的其他池表现不足。MinIO 会根据每个池可用空闲空间的比例,自动将数据从被下线 的池迁移到部署中其余的池。

mc admin group

mc admin group 命令用于管理 MinIO 部署上的组。

mc admin heal

mc admin heal 命令会扫描受损或损坏的对象,并对这些对象执行自愈。

mc admin info

mc admin info 命令显示 MinIO 服务器的信息。 对于分布式 MinIO 部署,mc admin info 会显示部署中每个 MinIO 服务器的信息。

mc admin kms key

mc admin kms key 命令通过 MinIO Key Encryption Service (KES) 执行加密密钥管理操作。

mc admin logs

使用 mc admin logs 命令显示 MinIO 服务器日志。

mc admin policy

mc admin policy 命令用于管理可与 MinIO 基于策略的访问控制 (PBAC) 配合使用的策略。 MinIO PBAC 使用与 IAM 兼容的策略 JSON 文档来定义访问 MinIO 服务器资源的规则。

mc admin prometheus

mc admin prometheus 命令及其子命令用于访问 MinIO Prometheus 指标。

mc admin rebalance

mc admin rebalance 命令可用于在 MinIO 部署上启动、监控或停止再平衡操作。 再平衡会在部署中的所有池之间重新分配对象。

mc admin replicate

mc admin replicate 命令用于为一组 MinIO 对等站点创建并管理 站点复制

站点复制类似于 active-active 存储桶复制,但适用于多个 MinIO 部署。 在这组站点中,无论 IAM 设置、存储桶或对象发生何种变更,该变更都会在站点复制组中的所有站点间复制。

mc admin scanner

mc admin scanner 命令提供有关 scanner 进程的信息。

mc admin service

mc admin service 命令可用于重启或解除冻结 MinIO 服务器。

mc admin trace

mc admin trace 命令显示目标 MinIO 部署上发生的 API 操作。

mc admin update

mc admin update 命令会更新部署中的所有 MinIO 服务器。 该命令还支持使用私有镜像服务器,适用于部署环境无法访问公网的场景。

mc admin user

mc admin user 命令及其子命令用于管理 MinIO 用户

安装

请从下载与安装获取维护版客户端,或按 mc 参考文档中的源码构建说明操作。独立归档与 Linux 软件包使用 mcli 命令名;若主机安装的是该名称,请在示例中把 mc admin 替换为 mcli admin

快速开始

开始此流程前,请确保主机已 安装 mc

警告

重要

以下示例会临时禁用 bash 历史记录,以降低认证凭据明文泄露的风险。 这是一项基础安全措施,无法缓解所有可能的攻击向量。请遵循你所用操作系统的 安全最佳实践,在命令行中输入敏感信息。

使用 mc alias set 命令将该部署添加到 mc 配置中。

bash +o history
mc config host add <ALIAS> <ENDPOINT> ACCESS_KEY SECRET_KEY
bash -o history

将各参数替换为所需值。仅指定 mc config host add 命令会启动输入提示, 用于录入所需值。

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

mc admin info <ALIAS>

全局选项

mc admin 支持与 mc 相同的全局选项。 参见 全局选项

8.1 - mc admin accesskey

说明

新增: MinIO客户端版本RELEASE.2024-10-08T09-37-26Z

这些命令用于替代 mc admin user svcacct 命令及其子命令中的 MinIO IDP 功能。

描述

mc admin accesskey 命令及其子命令用于为 MinIO 部署中内部管理的用户创建和管理 Access Keys

每个访问密钥都关联到一个 用户身份,并继承其父用户直接附加的 策略 父用户所属组的策略。 每个访问密钥还支持可选的内联策略,可进一步将访问限制为父用户可用操作和资源的一个子集。

mc admin user svcacct 仅支持为 MinIO-managed 账户创建访问密钥。

要为 Active Directory/LDAP-managed 账户创建访问密钥,请使用 mc idp ldap accesskey 及其子命令。 要管理 OpenID Connect-managed users 的访问密钥,请登录 MinIO Console 并通过 UI 生成访问密钥。

mc admin accesskey 命令包含以下子命令:

子命令

描述

create

mc admin accesskey create 命令为现有 MinIO 用户添加新的 access key 和 secret key 对。

disable

mc admin accesskey disable 命令用于禁用 MinIO IDP 用户的现有访问密钥。

edit

mc admin accesskey edit 命令用于修改与指定用户关联的访问密钥配置。

enable

mc admin accesskey enable 命令用于启用现有访问密钥。

info

mc admin accesskey info 命令返回指定 access key(s) 的描述信息。

ls

mc admin accesskey ls 命令列出 MinIO 部署管理的用户、访问密钥或临时 security token service 密钥。

rm

mc admin accesskey rm 命令用于删除部署中与某个用户关联的访问密钥。

8.2 - mc admin accesskey create

语法

mc admin accesskey create 命令为现有 MinIO 用户添加新的 access key 和 secret key 对。

说明

OpenID Connect 或 AD/LDAP 用户的访问密钥

此命令用于为直接在 MinIO 部署上创建、且不由第三方方案管理的用户创建访问密钥。

要为 Active Directory/LDAP users 生成访问密钥,请使用 mc idp ldap accesskey create

以下命令会创建一个与现有 MinIO 用户关联的新访问密钥:

mc admin accesskey create        \
   myminio/ myuser               \
   --access-key myuseraccesskey  \
   --secret-key myusersecretkey  \
   --policy /path/to/policy.json

该命令会返回新账户的 access key 和 secret key。

命令语法如下:

mc [GLOBALFLAGS] admin accesskey create                    \
                                 ALIAS                     \
                                 [USER]                    \
                                 [--access-key string]     \
                                 [--secret-key string]     \
                                 [--policy path]           \
                                 [--name string]           \
                                 [--description string]    \
                                 [--expiry-duration value] \
                                 [--expiry date]
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

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

参数

ALIAS

mc-cmd

Required

MinIO 部署的 alias

USER

mc-cmd

Optional

MinIO 要为其添加新访问密钥的用户名。 如果未指定,MinIO 会为已认证用户生成 access key/secret key 对。

--access-key

mc-cmd

Optional

作为此账户 access key 使用的字符串。 若省略,MinIO 会自动生成一个随机的 20 字符值。

Access Key 名称在所有用户之间 必须 唯一。

--description

mc-cmd

Optional

为访问密钥添加描述。 例如,可以说明该访问密钥存在的原因。

--expiry

mc-cmd

Optional

为访问密钥设置过期日期。 该日期必须是未来时间。 不可设置已经过去的过期日期。

允许的日期和时间格式:

  • 2024-10-24
  • 2024-10-24T10:00
  • 2024-10-24T10:00:00
  • 2024-10-24T10:00:00Z
  • 2024-10-24T10:00:00-07:00

--expiry-duration 互斥。

--expiry-duration

mc-cmd

Optional

access key 保持有效的时长。 有效时间单位为 “ns”、”us”(或 “µs”)、”ms”、”s”、”m”、”h”。

以下示例会让凭证在 30 天后过期:

--expiry-duration 720h

--expiry 互斥。

--name

mc-cmd

Optional

为访问密钥添加人类可读名称。

--policy

mc-cmd

Optional

要附加到新访问密钥上的 policy document 的可读路径,最大大小为 2048 字符。 所附加策略不得授予父用户策略或组策略未明确允许的任何操作或资源访问权限。

--secret-key

mc-cmd

Optional

与新账户关联的 secret key。 若省略,MinIO 会自动生成一个随机的 40 字符值。

全局标志

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

示例

为已认证用户创建 access key / secret key 对

以下命令会为当前登录到别名为 myminio 的 MinIO 部署的用户生成新的随机 access key 和 secret key 对。 该 access key 和 secret key 与已认证用户具有相同的访问策略。

mc admin accesskey create myminio/

为已认证用户创建自定义 access key / secret key 对

以下命令会为当前登录到别名为 myminio 的 MinIO 的用户创建新的 access key 和 secret key 对。 该 access key 和 secret key 与已认证用户具有相同的访问策略。

mc admin accesskey create myminio/ --access-key myaccesskey --secret-key mysecretkey

为另一位用户创建有时长限制的 access key / secret key 对

以下命令会为别名 myminio 上的用户 miniouser 创建新的 access key 和 secret key 对。 该 access key 和 secret key 与 miniouser 具有相同的访问策略。 这些凭证在创建后 24 小时内有效。

mc admin accesskey create myminio/ miniouser --expiry-duration 24h

为已认证用户创建会过期的 access key / secret key 对

以下命令会为当前登录到别名 myminio 的 MinIO 部署的用户生成新的随机 access key 和随机 secret key 对。 该 access key 和 secret key 与已认证用户具有相同的访问策略。 这些凭证将于 2025 年 1 月 15 日过期。

mc admin accesskey create myminio/ --expiry 2025-01-15

指定的日期 必须 是未来日期。 有关有效的日期时间格式,请参见 --expiry 标志。

为不同用户创建具有自定义访问权限的 access key / secret key 对

以下命令会为别名 myminio 上的用户 miniouser 创建新的 access key 和 secret key 对。 该 access key 和 secret key 的访问权限比 miniouser 更受限,具体由策略 JSON 文件指定。

mc admin accesskey create myminio/ miniouser --policy /path/to/policy.json

指定的策略文件 不得 授予 miniouser 当前尚未拥有的任何访问权限。

行为

S3 兼容性

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

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

8.3 - mc admin cluster bucket import

描述

说明

新增: RELEASE.2022-06-17T02-52-50Z

mc admin cluster bucket import 命令用于导入由 mc admin cluster bucket export 命令生成的存储桶元数据。

你可以使用此命令将元数据手动恢复到 MinIO 部署中的指定存储桶。

如果仅将部署指定为目标,此命令会将元数据对象应用到目标上所有匹配的存储桶。

以下命令将指定的元数据导入到 myminio 部署。

mc admin cluster bucket import myminio ~/minio-metadata-backup/myminio-cluster.zip

命令语法如下:

mc [GLOBALFLAGS] admin cluster bucket import  \
                                    ALIAS[/BUCKET] \
                                    METADATA.ZIP
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

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

参数

ALIAS

mc-cmd

Required

MinIO 部署的 alias

METADATA.ZIP

mc-cmd

Required

要导入的元数据文件路径。

使用 mc admin cluster bucket export 导出存储桶元数据,以供此命令使用。

BUCKET

mc-cmd

Optional

应用导入元数据的存储桶。

全局标志

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

8.4 - mc admin cluster iam import

描述

说明

新增: RELEASE.2022-06-17T02-52-50Z

mc admin cluster iam import 命令导入由 mc admin cluster iam export 命令创建的 IAM 元数据。

您可以使用此命令手动恢复 MinIO 部署的 IAM 元数据设置。

说明

新增: mc

RELEASE.2024-09-09T07-53-10Z

该命令会输出导入结果,包括以下内容:

  • 按实体类型统计已导入的单个实体数量
  • 按策略导入目标的实体类型列出已导入策略
  • 导入失败的实体列表

以下命令将指定文件中的 IAM 元数据导入到 myminio 部署。

mc admin cluster iam import myminio ~/minio-metadata-backup/myminio-cluster.zip

命令语法如下:

mc [GLOBALFLAGS] admin cluster iam import  \
                                   ALIAS \
                                   IAM-METADATA.ZIP
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

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

RELEASE.2023-05-04T18-10-16Z 开始,mc admin cluster iam import 新增了对以尾随正斜杠结尾的别名 ALIAS/ 的支持。 在此版本之前,如果提供尾随正斜杠,命令会执行失败。

参数

ALIAS

mc-cmd

Required

MinIO 部署的 alias

IAM-METADATA.ZIP

mc-cmd

Required

要导入的 IAM 元数据文件路径。

使用 mc admin cluster iam export 导出 IAM 元数据,以供此命令使用。

全局标志

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

8.5 - mc admin policy attach

语法

将一个或多个 IAM 策略附加到 MinIO 管理的用户或组

说明

变更: RELEASE.2023-05-27T05-56-19Z

要成功附加策略,所引用的用户或组必须存在。

必须且只能指定 --user--group 二者之一。

以下命令将 readonly 策略附加到 aliasmyminio 的部署中的用户 james

mc admin policy attach myminio readonly --user james

该命令使用以下语法:

mc admin policy attach                       \
                TARGET                       \
                POLICY                       \
                [POLICY...]                  \
                [--user USER | --group GROUP]
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

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

警告

重要

此命令仅用于管理 MinIO 管理 用户的策略关联。

如需为 OpenID 管理的用户附加策略,请参见 OpenID Connect 访问管理

如需为 Active Directory/LDAP 用户或组附加策略,请使用 mc idp ldap policy attach

参数

mc admin policy attach 命令接受以下参数:

TARGET

mc-cmd

Required

已配置 MinIO 部署的 alias,该部署中包含要附加一个或多个策略的用户或组。

POLICY

mc-cmd

Required

要附加到用户或组的策略名称。

你可以通过空格分隔每个策略名称,一次附加多个策略。

MinIO 部署默认包含以下 内置策略

--user

mc-cmd

Optional

要附加一个或多个策略的用户身份名称。 只能指定一个用户。

你必须包含 --user--group 标志之一。 --user 标志不能与 --group 标志同时使用。

--group

mc-cmd

Optional

要附加一个或多个策略的组身份名称。 只能指定一个组。

属于该组的所有用户都会继承与该组关联的策略。

你必须包含 --group--user 标志之一。 --group 标志不能与 --user 标志同时使用。

全局标志

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

示例

readonly 策略附加到 alias 为 myminio 的部署中的用户 james

mc admin policy attach myminio readonly --user james

audit-policyacct-policy 策略附加到 alias 为 myminio 的部署中的组 legal

mc admin policy attach myminio audit-policy acct-policy --group legal

8.6 - mc admin prometheus generate

描述

mc admin prometheus generate 命令会生成一个用于 Prometheus 的指标抓取配置文件。

有关 MinIO 与 Prometheus 配合使用的完整文档,请参见 How to monitor MinIO server with Prometheus

从 MinIO 服务端 RELEASE.2024-07-15T19-02-30Z 和 MinIO 客户端 RELEASE.2024-07-11T18-01-28Z 开始,metrics version 3 (v3) 提供了额外的端点和指标。 要生成 v3 抓取配置,请使用 --api_version v3 选项。

MinIO 建议新部署使用 version 3 (v3)。 现有部署可以继续使用 metrics version 2

说明

仅在 MinIO 部署上使用 mc admin

MinIO 不支持将 mc admin 命令用于其他 S3 兼容服务, 无论这些服务声称与 MinIO 部署具有何种兼容性。

以下命令会为 alias myminio 指向的部署生成一个 Prometheus 抓取配置,用于采集 version 2 的存储桶指标:

mc admin prometheus generate myminio bucket

该命令语法如下:

mc [GLOBALFLAGS] admin prometheus generate                                        \
                                  ALIAS                                           \
                                  [TYPE]                                          \
                                  [--api_version v3]                              \
                                  [--bucket <bucket name>]
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

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

参数

ALIAS

mc-cmd

Required

已配置 MinIO 部署的 alias,该命令会为该部署生成与 Prometheus 兼容的配置文件。

--api-version

mc-cmd

Optional

要为 v3 metrics 生成抓取配置,请添加 --api-version v3 参数。 v3 是唯一接受的值。

省略 --api-version 可生成 v2 metrics 配置。

--bucket

mc-cmd

Optional

仅适用于 v3 指标。

对于返回存储桶级指标的 v3 指标类型,请指定存储桶名称。 需要 --api-version

--bucket 适用于以下 v3 指标类型:

  • api
  • replication

以下示例为存储桶 mybucket 的 API 指标生成配置:

mc admin prometheus generate ALIAS api --bucket mybucket --api-version v3
TYPE

mc-cmd

Optional

要抓取的指标类型。

metrics version 3 的有效值为:

  • api
  • audit
  • cluster
  • debug
  • ilm
  • logger
  • notification
  • replication
  • scanner
  • system

如果未指定,v3 命令会返回所有指标。

metrics version 2 的有效值为:

  • bucket
  • cluster
  • node
  • resource

如果未指定,v2 命令返回 cluster 指标。 Cluster 指标包含部分 node 指标的汇总。

全局参数

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

示例

生成默认的 v3 metrics 配置

使用 mc admin prometheus generate --api-version v3 生成一个抓取配置,用于为 MinIO 部署采集所有 v3 指标:

mc admin prometheus generate ALIAS --api-version v3
  • ALIAS 替换为 MinIO 部署的 alias

输出类似如下:

scrape_configs:
- job_name: minio-job
  bearer_token: [auth token]
  metrics_path: /minio/metrics/v3
  scheme: http
  static_configs:
  - targets: ['localhost:9000']

为其他类型生成 v3 metrics 配置

要为其他指标类型生成配置,请指定类型。 以下命令会为 v3 cluster 类型指标生成抓取配置:

mc admin prometheus generate ALIAS cluster --api-version v3
  • ALIAS 替换为 MinIO 部署的 alias

输出类似如下:

scrape_configs:
- job_name: minio-job-cluster
  bearer_token: [auth token]
  metrics_path: /minio/metrics/v3/cluster
  scheme: http
  static_configs:
  - targets: ['localhost:9000']

要为 different metric type 生成配置,请将 cluster 替换为所需类型。

生成 v3 bucket replication metrics 配置

以下示例会为存储桶 mybucket 的 v3 replication 指标生成抓取配置:

mc admin prometheus generate ALIAS replication --bucket mybucket --api-version v3
  • ALIAS 替换为 MinIO 部署的 alias

输出类似如下:

scrape_configs:
- job_name: minio-job-replication
  bearer_token: [auth token]
  metrics_path: /minio/metrics/v3/bucket/replication/mybucket
  scheme: https
  static_configs:
  - targets: [`localhost:9000`]

生成用于存储桶 API 指标的 v3 配置

以下示例会为存储桶 mybucket 的 v3 API 指标生成抓取配置:

mc admin prometheus generate ALIAS api --bucket mybucket --api-version v3
  • ALIAS 替换为 MinIO 部署的 alias

输出类似如下:

scrape_configs:
- job_name: minio-job-api
  bearer_token: [auth token]
  metrics_path: /minio/metrics/v3/bucket/api/mybucket
  scheme: https
  static_configs:
  - targets: [`localhost:9000`]

生成默认的 v2 metrics 配置

默认情况下,mc admin prometheus generate 会生成用于 v2 cluster 指标的抓取配置:

mc admin prometheus generate ALIAS
  • ALIAS 替换为 MinIO 部署的 alias

输出类似如下:

scrape_configs:
- job_name: minio-job
  bearer_token: [auth token]
  metrics_path: /minio/v2/metrics
  scheme: http
  static_configs:
  - targets: ['localhost:9000']

为其他指标类型生成 v2 配置

要为其他指标类型生成配置,请指定类型。 以下命令会为 v2 bucket 类型指标生成抓取配置:

mc admin prometheus generate ALIAS bucket

8.7 - mc admin scanner status

描述

mc admin scanner status 命令会显示 MinIO Server 的 scanner 信息的实时摘要。

该命令的别名为 mc admin scanner info

说明

仅在 MinIO 部署上使用 mc admin

MinIO 不支持将 mc admin 命令用于其他 S3 兼容服务, 无论这些服务声称与 MinIO 部署具有何种兼容性。

以下示例返回扫描器进程当前状态的信息。

mc admin scanner status myminio

该命令返回的结果类似如下:

Overall Statistics
------------------
Last full scan time:   0d0h15m; Estimated 2879.79/month
Current cycle:         (between cycles)
Active drives: 0

Last Minute Statistics
----------------------
Objects Scanned:       3 objects; Avg: 67.611µs; Rate: 4320/day
Versions Scanned:      3 versions; Avg: 2.506µs; Rate: 4320/day
Versions Heal Checked: 0 versions; Avg: 0ms
Read Metadata:         3 objects; Avg: 40.817µs, Size: 395 bytes/obj
ILM checks:            3 versions; Avg: 714ns
Check Replication:     3 versions; Avg: 892ns
Verify Deleted:        0 folders; Avg: 0ms
Yield:                 18ms total; Avg: 6ms/obj

该命令的语法如下:

mc admin scanner status ALIAS
                       [--bucket <string>]     \
                       [--interval <value>]   \
                       [--max-paths <value>]  \
                       [-n <integer>]         \
                       [--nodes <string>]
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

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

参数

ALIAS

mc-cmd

Required

用于显示 scanner API 操作的 MinIO 部署 alias

--bucket

mc-cmd

Optional

将 scanner 统计信息过滤到指定存储桶。

--interval

mc-cmd

Optional

两次状态请求刷新之间等待的秒数。 如果未指定,状态每 3 秒刷新一次。

--max-paths

mc-cmd

Optional

要显示的活跃路径的最大数量。 使用 -1 表示不限制路径数量。

当被扫描的驱动器数量较大时,限制显示路径数量可以减少控制台窗口滚动。

如果未指定,结果将返回不限制数量的活跃路径。

-n

mc-cmd

Optional

在自动退出前返回的状态请求数量。 使用 0 表示返回不限数量的状态结果。

如果未指定,结果会按指定间隔持续刷新,直到手动退出。

--nodes

mc-cmd

Optional

返回指定节点的 scanner 状态信息。 使用逗号分隔列表指定多个节点。

全局标志

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

8.8 - mc admin user add

语法

mc admin user add 命令会在目标 MinIO 部署中添加一个新的 MinIO 用户

要管理外部身份提供商用户,请参见 OIDCAD/LDAP

以下命令会在 myminio MinIO 部署上创建一个新用户 newuser

mc admin user add myminio newuser newusersecret

该命令语法如下:

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

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

参数

ACCESSKEY

mc-cmd

Required

用于唯一标识新用户的访问密钥,类似于用户名。

ALIAS

mc-cmd

Required

已配置 MinIO 部署的 alias,用于在该部署上创建新用户。

SECRETKEY

mc-cmd

Required

新用户的 secret key。创建 secret key 时请参考以下建议:

  • 密钥应为 唯一
  • 密钥应足够 (超过 12 个字符)
  • 密钥应具备 复杂性(混合使用字符、数字和符号)

全局标志

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

示例

创建新用户

使用 mc admin user add 在 MinIO 部署上创建用户:

   mc admin user add ALIAS ACCESSKEY SECRETKEY
  • ALIAS 替换为 MinIO 部署的 alias
  • ACCESSKEY 替换为该用户的 access key。
  • SECRETKEY 替换为该用户的 secret key。 MinIO 提供任何在设置后检索 secret key 的方法。

请为 ACCESSKEYSECRETKEY 都指定唯一、随机且足够长的字符串。 组织在生成用于 access key 或 secret key 的值时,可能存在特定的内部或监管要求。

行为

新用户默认没有策略

新创建的用户默认 没有 任何策略,因此无法在 MinIO 部署上执行任何操作。 要配置用户的已分配策略,你可以执行以下一项或两项操作:

有关 MinIO 用户和组的更多信息,请参见 用户管理组管理。 有关 MinIO 策略的更多信息,请参见 MinIO Policy Based Access Control

S3 兼容性

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

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

8.9 - mc admin user svcacct add

警告

重要

此命令已被替代,并将在未来的 MinIO 客户端版本中弃用。

从 MinIO客户端版本RELEASE.2024-10-08T09-37-26Z 起,请使用 mc admin accesskey create 命令为内置 MinIO IDP 用户添加访问密钥。

如需为 AD/LDAP 用户添加访问密钥,请使用 mc idp ldap accesskey create 命令。

语法

mc admin user svcacct add 命令为现有 MinIO 或 AD/LDAP 用户添加新的访问密钥。

说明

OpenID Connect 用户的访问密钥

要为 OpenID Connect 用户 生成服务账户访问密钥,请使用 MinIO Console

以下命令会创建一个与现有 MinIO 用户关联的新访问密钥:

mc admin user svcacct add                       \
   --access-key "myuserserviceaccount"          \
   --secret-key "myuserserviceaccountpassword"  \
   --policy "/path/to/policy.json"              \
   myminio myuser

命令会返回该新账号的访问密钥和秘密密钥。

命令语法如下:

mc [GLOBALFLAGS] admin user svcacct add             \
                                    [--access-key]  \
                                    [--secret-key]  \
                                    [--policy]      \
                                    [--comment]     \
                                    ALIAS           \
                                    USER
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

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

参数

ALIAS

mc-cmd

Required

MinIO 部署的 alias

USER

mc-cmd

Required

MinIO 要为其添加新访问密钥的用户名。

--access-key

mc-cmd

Optional

用作此账号访问密钥的字符串。 省略时,MinIO 会自动生成一个 20 个字符的随机值。

Access Key 名称在所有用户之间 必须 唯一。

--comment

mc-cmd

Optional

说明

变更: RELEASE.2023-05-18T16-59-00Z

已由 --description--name 替代。

最初在 RELEASE.2023-01-28T20-29-38Z 版本中引入。

此选项已移除。 请改用 --description--name

--description

mc-cmd

Optional

说明

新增: RELEASE.2023-05-18T16-59-00Z

为服务账户添加描述。 例如,可以说明该服务账户存在的原因。

--expiry

mc-cmd

Optional

说明

新增: RELEASE.2023-05-30T22-41-38Z

为服务账户设置过期日期。 该日期必须是未来时间,不能设置已经过去的过期日期。

允许的日期和时间格式:

  • 2023-06-24
  • 2023-06-24T10:00
  • 2023-06-24T10:00:00
  • 2023-06-24T10:00:00Z
  • 2023-06-24T10:00:00-07:00
--name

mc-cmd

Optional

说明

新增: RELEASE.2023-05-18T16-59-00Z

为服务账户添加一个人类可读的名称。

--policy

mc-cmd

Optional

要附加到新访问密钥的 策略文档 路径,最大大小为 2048 个字符。 附加的策略不能授予父用户策略未明确允许的任何操作或资源访问权限。

--secret-key

mc-cmd

Optional

与新账号关联的秘密密钥。 省略时,MinIO 会自动生成一个 40 字符的随机值。

全局标志

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

行为

S3 兼容性

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

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

8.10 - mc admin accesskey disable

语法

mc admin accesskey disable 命令用于禁用 MinIO IDP 用户的现有访问密钥。

以下命令会禁用指定的访问密钥:

mc admin accesskey disable myminio myuserserviceaccount

该命令的语法如下:

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

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

参数

ALIAS

mc-cmd

Required

MinIO 部署的 alias

SERVICEACCOUNT

mc-cmd

Required

要禁用的访问密钥。

全局标志

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

行为

S3 兼容性

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

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

8.11 - mc admin cluster bucket

说明

说明

新增: RELEASE.2022-06-17T02-52-50Z

mc admin cluster bucket 命令及其子命令提供了用于手动导入和导出 MinIO 存储桶元数据的工具。

这些元数据包含与 生命周期管理规则 等功能相关的配置。 你可以将这些元数据作为存储桶配置的快照,用于后续恢复,例如作为 BC/DR 或备份/恢复操作的一部分。

你可以将此命令用于单个存储桶, 用于 MinIO 部署中的所有存储桶。 如需将部署中的所有存储桶自动同步到远端站点,请使用 站点复制

mc admin cluster bucket 命令包含以下子命令:

子命令

说明

import

mc admin cluster bucket import 命令用于导入由 mc admin cluster bucket export 命令生成的存储桶元数据。

export

mc admin cluster bucket export 命令会导出存储桶元数据,以供 mc admin cluster bucket import 命令使用。

8.12 - mc admin cluster bucket export

描述

说明

新增: RELEASE.2022-06-17T02-52-50Z

mc admin cluster bucket export 命令会导出存储桶元数据,以供 mc admin cluster bucket import 命令使用。

你可以使用此命令手动备份指定 MinIO 存储桶的元数据。 该命令始终将输出保存为 cluster-metadata.zip

如果你仅将部署指定为目标,此命令会备份目标部署上所有存储桶的元数据。

以下命令会导出 myminio 部署的所有存储桶元数据。

mc admin cluster bucket export myminio

该命令使用以下语法:

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

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

参数

ALIAS

mc-cmd

Required

MinIO 部署的 alias

BUCKET

mc-cmd

Optional

要导出元数据的存储桶。

全局标志

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

8.13 - mc admin cluster iam export

描述

说明

新增: RELEASE.2022-06-26T18-51-48Z

mc admin cluster iam export 命令导出 IAM 元数据,以供 mc admin cluster iam import 命令使用。

该命令将输出保存为 ALIAS-iam-metadata.zip,其中 ALIAS 是 MinIO 部署的 alias

以下命令导出 myminio 部署的全部 IAM 元数据。

mc admin cluster iam export myminio

命令语法如下:

mc [GLOBALFLAGS] admin cluster iam export ALIAS  \
                 [--output, -o <string>]
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

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

RELEASE.2023-05-04T18-10-16Z 开始,mc admin cluster iam export 支持以尾随正斜杠结尾的别名 ALIAS/。 在此版本之前,提供尾随正斜杠会导致命令执行失败。

参数

ALIAS

mc-cmd

Required

要导出 IAM 元数据的 MinIO 部署 alias

--output, --o

mc-cmd

Optional

指定导出 IAM 数据时使用的自定义文件名和路径。

全局标志

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

示例

将集群的全部 IAM 元数据下载到 ZIP 文件

以下命令下载别名为 myminio 的集群全部 IAM 元数据,并将其保存到 ZIP 文件中。

mc admin cluster iam export myminio

ZIP 文件命名为 <alias>-iam-info.zip,其中 <alias> 是集群别名。 在上述示例中,文件名为 myminio-iam-info.zip

该文件位于当前活动目录中。

下载集群的全部 IAM 元数据并指定 ZIP 文件名称和路径

以下命令下载别名为 myminio 的集群全部 IAM 元数据,并将其保存为 /tmp/myminio-iam.zip ZIP 文件。

mc admin cluster iam export myminio --output /tmp/myminio-iam.zip

8.14 - mc admin policy create

Syntax

在目标 MinIO 部署上创建一个新策略。

MinIO 部署默认包含以下 内置策略

假设以下 JSON 策略文档保存在名为 /tmp/listmybuckets.json 的文件中:

{
   "Version": "2012-10-17",
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
            "s3:ListAllMyBuckets"
         ],
         "Resource": [
            "arn:aws:s3:::*"
         ]
      }
   ]
}

以下命令使用文件 /tmp/listmybuckets.json 中的策略,在 alias myminio 上创建一个名为 listmybuckets 的新策略。

mc admin policy create myminio listmybuckets /tmp/listmybuckets.json

该命令的语法如下:

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

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

Parameters

mc admin policy create 命令接受以下参数:

TARGET

mc-cmd

已配置 MinIO 部署的 alias,用于向该部署添加新策略。

POLICYNAME

mc-cmd

要添加的策略名称。

指定已有策略的名称会覆盖 TARGET MinIO 部署上的该策略。

POLICYPATH

mc-cmd

要添加的策略文件路径。 该文件 必须 为 JSON 格式,使用 IAM 兼容语法,且长度不超过 2048 个字符。

Global Flags

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

Examples

在别名为 myminio 的部署上,使用 /tmp/writeonly.json 的 JSON 文件创建一个名为 writeonly 的新策略。

mc admin policy create myminio writeonly /tmp/writeonly.json

8.15 - mc admin prometheus metrics

说明

mc admin prometheus metrics 命令用于输出集群的 Prometheus 指标。

输出还包含每个指标的附加信息,例如其值类型是 counter 还是 gauge

有关将 MinIO 与 Prometheus 配合使用的完整文档,请参阅 How to monitor MinIO server with Prometheus

从 MinIO 服务端 RELEASE.2024-07-15T19-02-30Z 和 MinIO 客户端 RELEASE.2024-07-11T18-01-28Z 开始,metrics version 3 (v3) 提供了额外的端点和指标。 要输出 v3 指标,请使用 --api_version v3 选项。

MinIO 建议新部署使用 version 3 (v3)。 现有部署可以继续使用 metrics version 2

说明

仅在 MinIO 部署上使用 mc admin

MinIO 不支持将 mc admin 命令用于其他 S3 兼容服务, 无论这些服务声称与 MinIO 部署具有何种兼容性。

以下命令输出 alias myminio 对应部署的集群指标:

mc admin prometheus metrics myminio cluster

命令语法如下:

mc [GLOBALFLAGS] admin prometheus metrics  \
                                  ALIAS                                           \
                                  [TYPE]                                          \
                                  [--api_version v3]                              \
                                  [--bucket <bucket name>]
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

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

参数

ALIAS

mc-cmd

Required

已配置 MinIO 部署的 alias,命令将输出该部署的指标。

--api-version

mc-cmd

Optional

要输出 version 3 (v3) 指标,请添加 --api-version v3 参数。 v3 是唯一接受的值。

省略 --api-version 则输出 version 2 (v2) 指标。

--bucket

mc-cmd

Optional

需要 --api-version。 对于返回存储桶级指标的 v3 指标类型,需指定存储桶名称。

--bucket 适用于以下 v3 指标类型:

  • api
  • replication

以下示例输出存储桶 mybucket 的 API 指标:

mc admin prometheus metrics ALIAS api --bucket mybucket --api-version v3
TYPE

mc-cmd

Optional

要输出的指标类型。

metrics version 3 的有效值为:

  • api
  • audit
  • cluster
  • debug
  • ilm
  • logger
  • notification
  • replication
  • scanner
  • system

未指定时,v3 命令返回所有指标。

metrics version 2 的有效值为:

  • bucket
  • cluster
  • node
  • resource

未指定时,v2 命令返回集群指标。 集群指标包含部分节点指标的汇总值。

全局标志

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

示例

输出 v3 指标

使用 mc admin prometheus metrics --api-version v3 输出某个 MinIO 部署中所有可用的 v3 指标及其当前值:

mc admin prometheus metrics ALIAS --api-version v3
  • ALIAS 替换为 MinIO 部署的 alias

要输出特定类型的指标,请添加 TYPE。 以下命令输出某个部署的全部 scanner 指标:

mc admin prometheus metrics ALIAS scanner --api-version v3

输出 v3 API 或存储桶复制指标

某些 v3 指标类型接受 --bucket 参数,用于指定要输出指标的存储桶。 以下示例输出存储桶 mybucket 的 v3 replication 指标:

mc admin prometheus metrics ALIAS replication --bucket mybucket --api-version v3
  • ALIAS 替换为 MinIO 部署的 alias

要输出该存储桶的 API 指标,请将 replication 替换为 api

输出 v2 集群指标

默认情况下,mc admin prometheus metrics 输出 v2 集群指标:

mc admin prometheus metrics ALIAS
  • ALIAS 替换为 MinIO 部署的 alias

输出其他类型的 v2 指标

要输出另一种 v2 指标类型,请指定所需的 TYPE。 以下示例输出 v2 bucket 指标:

mc admin prometheus metrics ALIAS bucket

可接受的值为 bucketclusternoderesource

8.16 - mc admin scanner trace

说明

mc admin scanner trace 命令会显示目标 MinIO 部署上发生的 scanner 相关 API 操作。

说明

仅在 MinIO 部署上使用 mc admin

MinIO 不支持将 mc admin 命令用于其他 S3 兼容服务, 无论这些服务声称与 MinIO 部署具有何种兼容性。

以下示例返回 myminio 部署上与 scanner 相关的 API 操作列表。

mc admin scanner trace myminio

命令语法如下:

mc admin scanner trace ALIAS
                       [--filter-request]            \
                       [--filter-response]           \
                       [--filter-size <value>]       \
                       [--funcname <value>]          \
                       [--node <value>]              \
                       [--path <value>]              \
                       [--response-duration <value>] \
                       [--verbose, -v]
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

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

参数

ALIAS

mc-cmd

Required

要显示其 scanner API 操作的 MinIO 部署的 alias

--filter-request

mc-cmd

Optional

跟踪请求大小大于指定 --filter-size 值的 scanner 操作或调用。

必须--filter-size 标志配合使用。

--filter-response

mc-cmd

Optional

跟踪响应大小大于指定 --filter-size 值的 scanner 操作或调用。

必须--filter-size 标志配合使用。

--filter-size

mc-cmd

Optional

将输出过滤为请求大小或响应大小大于指定大小的条目。

必须与 --filter-request--filter-response 标志之一配合使用。

有效单位包括:

后缀 单位大小
k KB(Kilobyte,1000 Bytes)
m MB(Megabyte,1000 Kilobytes)
g GB(Gigabyte,1000 Megabytes)
t TB(Terabyte,1000 Gigabytes)
ki KiB(Kibibyte,1024 Bytes)
mi MiB(Mebibyte,1024 Kibibytes)
gi GiB(Gibibyte,1024 Mebibytes)
ti TiB(Tebibyte,1024 Gibibytes)
--funcname

mc-cmd

Optional

返回与输入函数名对应的调用。

--node

mc-cmd

Optional

返回指定服务器的调用。

--path

mc-cmd

Optional

返回指定路径的调用。

--response-duration

mc-cmd

Optional

跟踪响应持续时间大于指定值的调用。

--verbose, -v

mc-cmd

Optional

返回详细输出。

全局标志

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

示例

监控所有 scanner API 操作

使用 mc admin scanner trace 监控别名为 myminio 的 MinIO 部署上的 scanner API 操作:

mc admin scanner trace myminio

显示特定路径的 scanner 跟踪

使用 mc admin scanner trace 监控别名为 myminio 的部署上路径 my-bucket/my-prefix/* 的 API 操作:

mc admin scanner trace --path my-bucket/my-prefix/* myminio

显示 scanObject 函数的 scanner API 操作

监控 myminio 部署上 scanObject 函数的 scanner 活动:

mc admin scanner trace --funcname=scanner.ScanObject myminio

显示大于 1MB 的 scanner 操作请求

使用 mc admin scanner trace 监控 myminio 部署上大于 1MB 的请求:

mc admin scanner trace --filter-request --filter-size 1MB myminio

显示大于 1MB 的 scanner 操作响应

使用 mc admin scanner trace 监控较大的响应大小:

mc admin scanner trace --filter-response --filter-size 1MB myminio

显示持续超过五毫秒的 scanner 操作

使用 mc admin scanner trace 监控耗时较长的操作:

mc admin scanner trace --response-duration 5ms myminio

8.17 - mc admin user disable

语法

mc admin user disable 命令用于在目标 MinIO 部署上禁用 MinIO 用户

客户端不能使用该用户凭证向 MinIO 部署进行身份验证。 禁用用户 不会 将该用户从部署中移除。 使用 mc admin user enable 可在 MinIO 部署上启用已禁用的用户。

如需管理外部身份提供商用户,请参阅 OIDCAD/LDAP

以下命令会在 myminio MinIO 部署上禁用用户 myuser

mc admin user disable myminio myuser

该命令的语法如下:

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

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

参数

ALIAS

mc-cmd

Required

要禁用用户所在 MinIO 部署的 alias

USERNAME

mc-cmd

Required

要禁用的用户名。

全局标志

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

示例

禁用用户

使用 mc admin user disable 在 MinIO 部署上禁用用户。

mc admin user disable ALIAS USERNAME
  • ALIAS 替换为 MinIO 部署的 alias
  • USERNAME 替换为要禁用的用户名。

行为

S3 兼容性

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

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

8.18 - mc admin user svcacct disable

警告

重要

此命令已被替代,并将在未来的 MinIO 客户端版本中弃用。

从 MinIO客户端版本RELEASE.2024-10-08T09-37-26Z 起,请使用 mc admin accesskey disable 命令禁用内置 MinIO IDP 用户的访问密钥。

如需禁用 AD/LDAP 用户的访问密钥,请使用 mc idp ldap accesskey disable 命令。

语法

mc admin user svcacct disable 命令用于禁用现有访问密钥。

以下命令会禁用指定的访问密钥:

mc admin user svcacct disable myminio myuserserviceaccount

命令语法如下:

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

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

参数

ALIAS

mc-cmd

Required

MinIO 部署的 alias

SERVICEACCOUNT

mc-cmd

Required

要禁用的服务账户访问密钥。

全局标志

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

行为

S3 兼容性

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

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

8.19 - mc admin cluster iam

描述

说明

新增: RELEASE.2022-06-26T18-51-48Z

mc admin cluster iam 命令及其子命令提供了用于手动导入和导出 MinIO 身份与访问管理(IAM) 元数据的工具。

如需将部署中的所有 IAM 配置自动同步到远程站点,请使用 站点复制

mc admin cluster iam 命令包含以下子命令:

子命令

描述

import

mc admin cluster iam import 命令导入由 mc admin cluster iam export 命令创建的 IAM 元数据。

export

mc admin cluster iam export 命令导出 IAM 元数据,以供 mc admin cluster iam import 命令使用。

8.20 - mc admin policy detach

语法

MinIO 管理的用户或组 中移除一个或多个 IAM 策略。

必须且只能指定 --user--group 其中之一。

以下命令从别名为 myminio 的部署中为用户 james 解绑 readonly 策略。

mc admin policy detach myminio readonly --user james

该命令的语法如下:

mc admin policy detach TARGET                         \
                       POLICY                         \
                       [POLICY...]                    \
                       [--user USER | --group GROUP]
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

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

警告

重要

此命令仅用于管理 MinIO 管理 用户的策略关联。

如需管理 OpenID 管理的用户策略,请参见 OpenID Connect 访问管理

如需从 Active Directory/LDAP 用户或组解绑策略,请使用 mc idp ldap policy detach

参数

mc admin policy detach 命令接受以下参数:

TARGET

mc-cmd

Required

已配置 MinIO 部署的 alias,其中包含你要解绑一个或多个策略的用户或组。

POLICY

mc-cmd

Required

要从用户或组解绑的策略名称。 你可以通过空格分隔多个策略名称,一次解绑多个策略。

MinIO 部署默认包含以下 内置策略

--user

mc-cmd

Optional

要解绑策略的身份用户名。 只能指定一个用户。

必须包含 --user--group 标志之一。 不能将 --user--group 标志同时使用。

--group

mc-cmd

Optional

要解绑策略的组名称。 只能指定一个组。

组内所有成员都会失去该组关联策略所授予的权限,除非这些权限也由用户所属的其他策略或组授予。

必须包含 --group--user 标志之一。 不能将 --group--user 标志同时使用。

全局标志

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

示例

从别名为 myminio 的部署中为用户 james 解绑 readonly 策略。

mc admin policy detach myminio readonly --user james

从别名为 myminio 的部署中为组 legal 解绑 audit-policyacct-policy 策略。

mc admin policy detach myminio audit-policy acct-policy --group legal

8.21 - mc admin user accesskey edit

语法

mc admin accesskey edit 命令用于修改与指定用户关联的访问密钥配置。

该命令要求访问密钥至少有一个属性发生变更。 否则,命令会报错退出。

以下命令为 myminio 部署上的 myuserserviceaccount 访问密钥应用新的策略和 secret key:

mc admin accesskey edit                                             \
                   myminio myuserserviceaccount                     \
                   --secret-key "myuserserviceaccountnewsecretkey"  \
                   --policy "/path/to/new/policy.json"

命令语法如下:

mc [GLOBALFLAGS] admin accesskey edit                      \
                                 ALIAS                     \
                                 ACCESSKEY                 \
                                 [--description string]    \
                                 [--expiry-duration value] \
                                 [--expiry value]          \
                                 [--name string]           \
                                 [--policy path]           \
                                 [--secret-key string]
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

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

参数

ALIAS

mc-cmd

Required

MinIO 部署的 alias

ACCESSKEY

mc-cmd

Required

要修改的访问密钥。

--description

mc-cmd

Optional

为访问密钥添加或修改描述。 例如,可用于说明该访问密钥的用途。

--expiry

mc-cmd

Optional

设置或修改访问密钥的过期日期。 日期必须为未来时间,不能设置已过去的过期日期。

允许的日期和时间格式:

  • 2023-06-24
  • 2023-06-24T10:00
  • 2023-06-24T10:00:00
  • 2023-06-24T10:00:00Z
  • 2023-06-24T10:00:00-07:00

--expiry-duration 互斥。

--expiry-duration

mc-cmd

Optional

访问密钥保持有效的时长。 有效时间单位为 “ns”、”us”(或 “µs”)、”ms”、”s”、”m”、”h”。

若要让凭证在 30 天后过期,请使用:

--expiry-duration 720h

--expiry 互斥。

--name

mc-cmd

Optional

为访问密钥添加或修改一个便于识别的名称。

--policy

mc-cmd

Optional

要附加到新访问密钥的 策略文档 路径,最大长度为 2048 个字符。 附加策略不能授予父用户策略中未显式允许的任何操作或资源访问权限。

新策略会覆盖此前附加的任何策略。

--secret-key

mc-cmd

Optional

要与新访问密钥关联的 secret key。 会覆盖先前的 secret key。 使用该访问密钥的应用 必须 更新为新凭证,才能继续执行操作。

全局标志

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

示例

修改访问密钥的 secret key

以下命令修改 myminio 部署上 myuseraccesskey 访问密钥的 secret key。

mc admin accesskey edit myminio/ myuseraccesskey --secret-key 'new-secret-key-change-me'

修改访问密钥的过期设置

以下命令修改 myminio 部署上 myuseraccesskey 访问密钥的过期值。

mc admin accesskey edit myminio/ myuseraccesskey --expiry-duration 24h

如果访问密钥已设置 --expiry,则不能再添加 --expiry-duration

行为

S3 兼容性

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

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

8.22 - mc admin user enable

语法

mc admin user enable 命令用于在目标 MinIO 部署上启用 MinIO 用户

客户端只能使用已启用的用户向 MinIO 部署进行认证。 使用 mc admin user add 创建的用户默认处于启用状态。

要管理外部身份提供商用户,请参阅 OIDCAD/LDAP

以下命令在 myminio MinIO 部署上启用用户 myuser

mc admin user enable myminio myuser

该命令具有以下语法:

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

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

参数

ALIAS

mc-cmd

Required

需要启用该用户的 MinIO 部署的 alias

USERNAME

mc-cmd

Required

要启用的用户名。

全局标志

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

示例

启用用户

使用 mc admin user enable 在 MinIO 部署上启用用户。

mc admin user enable ALIAS USERNAME
  • ALIAS 替换为 MinIO 部署的 alias
  • USERNAME 替换为要启用的用户名。

行为

S3 兼容性

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

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

8.23 - mc admin user svcacct edit

警告

重要

此命令已被替代,并将在未来的 MinIO 客户端 发布版本中弃用。

从 MinIO客户端版本RELEASE.2024-10-08T09-37-26Z 起,请使用 mc admin accesskey edit 命令修改内置 MinIO IDP 用户的访问密钥。

如需修改 AD/LDAP 用户的访问密钥,请使用 mc idp ldap accesskey edit 命令。

语法

mc admin user svcacct edit 命令用于修改与指定用户关联的访问密钥配置。

以下命令为 myminio 部署上的 myuserserviceaccount 访问密钥应用新的策略和密钥:

mc admin user svcacct edit                                             \
                      --secret-key "myuserserviceaccountnewsecretkey"  \
                      --policy "/path/to/new/policy.json"              \
                      myminio myuserserviceaccount

该命令的语法如下:

mc [GLOBALFLAGS] admin user svcacct edit            \
                                    [--secret-key]  \
                                    [--policy]      \
                                    ALIAS           \
                                    SERVICEACCOUNT
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

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

参数

ALIAS

mc-cmd

Required

MinIO 部署的 alias

SERVICEACCOUNT

mc-cmd

Required

要修改的服务账户。

--description

mc-cmd

Optional

说明

新增: RELEASE.2023-05-18T16-59-00Z

为服务账户添加描述。 例如,可以说明该服务账户存在的原因。

--expiry

mc-cmd

Optional

说明

新增: RELEASE.2023-05-30T22-41-38Z

为服务账户设置过期日期。 日期必须在未来,不能设置已经过去的过期日期。

允许的日期和时间格式:

  • 2023-06-24
  • 2023-06-24T10:00
  • 2023-06-24T10:00:00
  • 2023-06-24T10:00:00Z
  • 2023-06-24T10:00:00-07:00
--name

mc-cmd

Optional

说明

新增: RELEASE.2023-05-18T16-59-00Z

为服务账户添加一个便于识别的名称。

--policy

mc-cmd

Optional

要附加到新访问密钥的 policy document 路径,最大长度为 2048 个字符。 附加的策略不能授予父用户策略未明确允许的任何操作或资源访问权限。

新策略会覆盖此前已附加的任何策略。

--secret-key

mc-cmd

Optional

与新访问密钥关联的密钥。 会覆盖此前的密钥。 使用这些访问密钥的应用程序 必须 更新为新凭证,才能继续执行操作。

全局参数

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

行为

S3 兼容性

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

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

8.24 - mc admin accesskey enable

语法

mc admin accesskey enable 命令用于启用现有访问密钥。

以下命令启用指定的访问密钥:

mc admin accesskey enable myminio myuserserviceaccount

该命令具有以下语法:

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

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

参数

ALIAS

mc-cmd

Required

MinIO 部署的 alias

SERVICEACCOUNT

mc-cmd

Required

要启用的访问密钥。

全局标志

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

行为

S3 兼容性

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

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

8.25 - mc admin config

说明

mc admin config 命令用于管理 minio 服务器的配置设置。

说明

仅在 MinIO 部署上使用 mc admin

MinIO 不支持将 mc admin 命令用于其他 S3 兼容服务, 无论这些服务声称与 MinIO 部署具有何种兼容性。

示例

语法

mc admin config set

mc-cmd

在 MinIO 部署上设置 配置键。 由环境变量定义的配置会覆盖通过此命令定义的配置。

mc admin config get

mc-cmd

获取 MinIO 部署上通过 mc admin config set 创建的 配置键

mc admin config export

mc-cmd

导出通过 mc admin config set 创建的所有配置设置。

mc admin config history

mc-cmd

列出由 mc admin config 对配置键所做变更的历史记录。

由环境变量定义的配置不会显示在其中。

mc admin config import

mc-cmd

导入通过 mc admin config export 导出的配置设置。

mc admin config reset

mc-cmd

将配置重置为默认值。 在环境变量中定义的配置不受影响。

mc admin config restore

mc-cmd

将配置键的更改回滚到历史中的先前时间点。

不影响由环境变量定义的配置。

配置设置

可用配置设置列表请参见 设置概览

8.26 - mc admin policy entities

语法

列出目标 MinIO 部署中与策略、用户或组关联的实体。

说明

变更: RELEASE.2023-05-27T05-56-19Z

此命令仅返回 MinIO 管理的用户和组

如需列出与 Active Directory 或 LDAP(AD/LDAP)配置关联的实体,请使用 mc idp ldap policy entities

例如,你可以列出附加到某个策略的所有用户和组,或者列出附加到特定用户或组的所有策略。

以下命令返回别名为 myminio 的部署中与用户 bob 关联的策略列表。

mc admin policy entities myminio/ --user bob

该命令语法如下:

mc admin policy entities         \
                TARGET           \
                [--user value]   \
                [--group value]  \
                [--policy value]
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

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

警告

重要

此命令仅用于管理 MinIO 管理的 用户的策略关联。

如需管理 OpenID 管理用户的策略,请参阅 OpenID Connect 访问管理

如需查看 Active Directory/LDAP 用户或组的策略,请使用 mc idp ldap policy entities

参数

mc admin policy entities 命令接受以下参数:

TARGET

mc-cmd

Required

已配置 MinIO 部署的 alias,将在该部署上添加新策略。

--group

mc-cmd

Optional

要列出其附加策略的组身份名称。

你可以通过多次重复该标志来包含多个组。 命令会返回每个组及其关联实体列表。

--policy

mc-cmd

Optional

要列出其关联实体的策略名称。

你可以通过多次重复该标志来包含多个策略。 命令会返回每个策略及其所有关联实体列表。

--user

mc-cmd

Optional

要列出其附加策略的身份用户名。

你可以通过多次重复该标志来包含多个用户。 命令会返回每个用户及其关联策略列表。

全局标志

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

示例

列出某个部署的所有实体及策略关联

以下命令列出别名为 myminio 的部署上所有策略及其关联的实体映射。

mc admin policy entities myminio/

列出与两个不同策略关联的实体

以下命令列出别名为 myminio 的部署上与策略 inteam-policymlteam-policy 关联的所有实体。

mc admin policy entities myminio/ --policy finteam-policy --policy mlteam-policy

列出与两个不同用户关联的策略

以下命令列出别名为 myminio 的部署上与用户 bobjames 关联的所有策略。

该命令先输出与 bob 关联的策略列表,再输出别名为 myminio 的部署中与 james 关联的策略列表。

mc admin policy entities myminio/ --user bob --user james

列出与两个不同组关联的策略

以下命令列出别名为 myminio 的部署上与组 auditorsaccounting 关联的所有策略。

该命令先输出与组 auditors 关联的策略列表,再输出别名为 myminio 的部署中与组 accounting 关联的策略列表。

mc admin policy entities play/ --group auditors --group accounting

列出与一个策略、一个组和一个用户关联的策略

以下命令列出别名为 myminio 的部署上与策略 finteam-policy、用户 bobfisher 和组 consulting 关联的所有策略。

该命令先输出与策略 finteam-policy 关联的组和用户列表,然后列出与用户 bobfisher 关联的策略,最后列出别名为 myminio 的部署中与组 consulting 关联的策略。

mc admin policy entities play/ \
           --policy finteam-policy --user bobfisher --group consulting

输出

命令输出类似如下:

Query time: 2023-04-04T20:39:27Z
  Policy -> Entity Mappings:
    Policy: finteam-policy
      User Mappings:
        bobfisher
    Policy: diagnostics
      User Mappings:
        james
        bobfisher
        marcia
      Group Mappings:
        consulting
        auditors
  User -> Policy Mappings:
    User: bobfisher
      ALLOW_PUBLIC_READ
      finteam-policy
      diagnostics
      readonly
      readwrite
      writeonly

8.27 - mc admin user info

语法

mc admin user info 命令返回目标 MinIO 部署中某个 MinIO 用户 的详细信息。

如需管理外部身份提供商用户,请参见 OIDCAD/LDAP

以下命令返回 myminio MinIO 部署中用户 myuser 的详细信息:

mc admin user info myminio myuser

该命令语法如下:

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

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

参数

ALIAS

mc-cmd

Required

用于获取用户信息的已配置 MinIO 部署的 alias

USERNAME

mc-cmd

要查询信息的用户名。

全局标志

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

说明

变更: RELEASE.2023-05-26T23-31-54Z

mc admin user info --json 输出包含用户通过组成员关系继承的策略,位于 memberOf 中。

示例

查看用户详细信息

使用 mc admin user info 查看 MinIO 部署中某个用户的详细信息:

mc admin user info ALIAS USERNAME
  • ALIAS 替换为 MinIO 部署的 alias
  • USERNAME 替换为要显示信息的用户名。

对于 MinIO 内部身份提供商 (IDP),输出类似如下:

AccessKey: miniouser
Status: enabled
PolicyName:
MemberOf: []
Authentication: builtin (miniouser)

对于 LDAP 等 第三方 身份服务,输出类似如下:

AccessKey: uid=dillon,ou=people,ou=swengg,dc=min,dc=io
Status:
PolicyName: consoleAdmin
MemberOf: []
Authentication: ldap/localhost:1389 (uid=dillon,ou=people,ou=swengg,dc=min,dc=io)

查看来自组成员关系的策略

mc admin user info--json 配合使用,可查看用户从其 组成员关系 继承的策略:

mc admin user info ALIAS USERNAME --json
  • ALIAS 替换为 MinIO 部署的 alias
  • USERNAME 替换为要显示信息的用户名。

输出中的 memberOf 属性包含该用户所属组的列表,以及附加到各组的策略。 输出类似如下:

{
 "status": "success",
 "accessKey": "myuser",
 "userStatus": "enabled",
 "memberOf": [
  {
   "name": "testingGroup",
   "policies": [
    "testingGroupPolicy"
   ]
 "authentication": builtin (myuser)
  }
 ]
}

行为

S3 兼容性

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

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

8.28 - mc admin user svcacct enable

警告

重要

此命令已被替代,并将在未来的 MinIO 客户端 发布版本中弃用。

从 MinIO客户端版本RELEASE.2024-10-08T09-37-26Z 起,使用 mc admin accesskey enable 命令为内置 MinIO IDP 用户启用访问密钥。

如需为 AD/LDAP 用户启用访问密钥,请使用 mc idp ldap accesskey enable 命令。

语法

mc admin user svcacct enable 命令用于启用现有访问密钥。

以下命令启用指定的访问密钥:

mc admin user svcacct enable myminio myuserserviceaccount

该命令的语法如下:

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

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

参数

ALIAS

mc-cmd

Required

MinIO 部署的 alias

SERVICEACCOUNT

mc-cmd

Required

要启用的服务账户访问密钥。

全局标志

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

行为

S3 兼容性

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

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

8.29 - mc admin accesskey info

语法

mc admin accesskey info 命令返回指定 access key(s) 的描述信息。

描述输出会在可用时包含以下详细信息:

  • Access Key
  • 指定访问密钥的父用户
  • 访问密钥状态(onoff
  • 策略(单个或多个)
  • 注释
  • 过期时间

以下命令返回指定访问密钥的信息:

mc admin accesskey info myminio myuseraccesskey

命令语法如下:

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

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

参数

ALIAS

mc-cmd

Required

MinIO 部署的 alias

ACCESSKEY

mc-cmd

Required

要显示的访问密钥。

通过空格分隔多个访问密钥,可返回多个访问密钥的信息。

全局标志

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

示例

显示访问密钥详细信息

使用 mc admin accesskey info 显示 MinIO 部署中某个访问密钥的详细信息:

   mc admin accesskey info myminio myaccesskey
  • myminio 替换为 MinIO 部署的 alias
  • myaccesskey 替换为要显示信息的访问密钥。 如需列出多个密钥,请使用空格分隔。

输出类似如下:

AccessKey: myuserserviceaccount
ParentUser: myuser
Status: on
Comment:
Policy: implied
Expiration: no-expiry

行为

S3 兼容性

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

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

8.30 - mc admin decommission

语法

mc admin decommission 命令用于启动 MinIO 服务器池s 的下线流程。下线流程适用于移除较旧的服务器池,这些服务器池的硬件能力或性能已不再满足要求, 或相较部署中的其他池表现不足。MinIO 会根据每个池可用空闲空间的比例,自动将数据从被下线 的池迁移到部署中其余的池。

有关服务器池下线的完整操作流程,请参阅 退役 服务器池

说明

下线是永久性的

一旦 MinIO 开始下线某个池,就会将该池标记为 永久 非活动状态(“draining”)。 取消或以其他方式中断下线流程都 不会 将该池恢复为活动状态。

下线是一项重要的管理操作,规划和执行都需要谨慎处理,不是轻量或“日常”任务。

MinIO SUBNET 用户可以 log in 并创建与下线相关的新 issue。通过 SUBNET 与 MinIO Engineering 协同可提高下线成功率,包括性能测试和健康诊断。

社区用户可在 MinIO Community Slack 寻求支持。社区支持仅为 best-effort,不提供响应 SLA。

mc admin [GLOBALFLAGS] decommission start|status|cancel ALIAS TARGET

参数

start

mc-cmd

必需 启动 TARGET 指定服务器池的下线流程。

必须指定 TARGET

status

mc-cmd

必需 返回指定 ALIAS 上所有服务器池的下线状态:

  • Active - 该池处于活动状态,且未计划下线。
  • Draining - 该池当前正在下线。
  • Draining (Failed) - 下线流程失败,需要手动重启流程。
  • Draining (Cancelled) - 下线流程已被手动取消。

如果命令包含 TARGET,则在下线进行中时, 命令输出会包含数据迁移速率。

cancel

mc-cmd

必需 取消 TARGET 指定池上的进行中下线流程。

必须指定 TARGET

取消下线流程不会使该池恢复为活动状态。最终仍必须完成下线流程并将该池从部署中移除。 可以再次对该池运行 mc admin decommission start 以恢复流程。

ALIAS

mc-cmd

必需 要启动下线流程的 MinIO 部署的 alias

TARGET

mc-cmd

命令所操作服务器池的完整描述。例如:

https://minio-{01...04}.example.net:9000/mnt/disk{1...4}

全局标志

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

示例

有关服务器池下线的完整操作流程,请参阅 退役 服务器池

8.31 - mc admin policy info

语法

如果目标 MinIO 部署上存在指定策略,则以 JSON 格式返回该策略。

以下命令显示 alias myminiowriteonly 策略的内容。

 mc admin policy info myminio writeonly

该命令的语法如下:

mc admin policy info TARGET POLICYNAME
                     [--policy-file, -f <path>]
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

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

参数

mc admin policy info 命令接受以下参数:

TARGET

mc-cmd

Required

已配置 MinIO 部署的 alias,用于显示指定策略。

POLICYNAME

mc-cmd

Required

要显示其详细信息的策略名称。

--policy-file

mc-cmd

Optional

指定一个文件路径,用于写入指定策略的 JSON 内容。 如果该路径已存在,命令会用指定策略的内容覆盖已有文件。

全局标志

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

示例

显示 alias myminiowriteonly 策略的内容。

mc admin policy info myminio writeonly

显示指定策略的信息,并将策略 JSON 内容写入 /tmp/policy.json。

mc admin policy info myminio writeonly --policy-file /tmp/policy.json

输出

该命令返回的输出类似如下:

{
   "Version": "2012-10-17",
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
            "s3:PutObject"
         ],
         "Resource": [
            "arn:aws:s3:::*"
         ]
      }
   ]
}

8.32 - mc admin user ls

语法

mc admin user ls 命令会列出目标 MinIO 部署上的所有 MinIO 用户

mc admin user list 命令与 mc admin user ls 功能等效。

mc admin user ls 不会 返回与用户关联的 access key 或 secret key。 使用 mc admin user info 可获取用户详细信息,包括用户的 access key。

要管理外部 Identity Provider 用户,请参阅 OIDCAD/LDAP

以下命令会列出 myminio MinIO 部署上的所有用户:

mc admin user ls myminio

该命令具有以下语法:

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

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

参数

ALIAS

mc-cmd

Required

已配置 MinIO 部署的 alias,命令将从该部署中列出用户。

全局参数

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

示例

列出可用用户

使用 mc admin user ls 列出 MinIO 部署上的所有用户:

mc admin user ls ALIAS

输出类似如下:

enabled    devadmin              readwrite
enabled    devtest               readonly
enabled    newuser

行为

S3 兼容性

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

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

8.33 - mc admin user svcacct info

警告

重要

此命令已被替代,并将在未来的 MinIO 客户端版本中弃用。

从 MinIO客户端版本RELEASE.2024-10-08T09-37-26Z 开始,请使用 mc admin accesskey info 命令显示内置 MinIO IDP 用户的 access key 信息。

对于 AD/LDAP 用户的 access key,请使用 mc idp ldap accesskey info 命令。

语法

mc admin user svcacct info 命令返回指定 access key 的描述信息。

在 MinIO 中,“Access Keys” 与 “Service Accounts” 功能等效,并取代了后者这一概念。

描述输出在可用时包含以下详细信息:

  • Access Key
  • 指定 access key 的父用户
  • access key 状态(onoff
  • 策略(单个或多个)
  • 注释
  • 过期时间

使用 --policy 查看附加的策略。

以下命令返回指定 access key 的信息:

mc admin user svcacct info myminio myuseraccesskey

该命令语法如下:

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

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

参数

ALIAS

mc-cmd

Required

MinIO 部署的 alias

ACCESSKEY

mc-cmd

Required

要显示的 service account access key。

--policy

mc-cmd

Optional

显示附加到指定 service account 的策略。

全局标志

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

示例

显示 Service Account 详情

使用 mc admin user svcacct info 显示 MinIO 部署上某个 service account 的详细信息:

   mc admin user svcacct info ALIAS ACCESSKEY
  • ALIAS 替换为 MinIO 部署的 alias
  • ACCESSKEY 替换为 service account access key。

输出类似如下:

AccessKey: myuserserviceaccount
ParentUser: myuser
Status: on
Comment:
Policy: implied
Expiration: no-expiry

显示 Service Account 策略详情

使用 mc admin user svcacct info 显示附加到 service account 的策略:

   mc admin user svcacct info --policy ALIAS ACCESSKEY
  • ALIAS 替换为 MinIO 部署的 alias
  • ACCESSKEY 替换为 service account access key。

输出类似如下:

{
 "Version": "2012-10-17",
 "Statement": [
  {
   "Effect": "Allow",
   "Action": [
    "s3:*"
   ],
   "Resource": [
    "arn:aws:s3:::*"
   ]
  }
 ]
}

行为

S3 兼容性

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

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

8.34 - mc admin accesskey ls

语法

mc admin accesskey ls 命令列出 MinIO 部署管理的用户、访问密钥或临时 security token service 密钥。

mc admin accesskey list 别名与 mc admin accesskey ls 功能等效。

以下命令列出别名为 myminio 的部署中,用户名为 admin1 的用户关联的所有访问密钥:

mc admin accesskey ls myminio admin1

输出如下所示:

   Access Key        | Expiry
5XF3ZHNZK6FBDWH9JMLX | 2023-06-24 07:00:00 +0000 UTC
F4V2BBUZSWY7UG96ED70 | 2023-12-24 18:00:00 +0000 UTC
FZVSEZ8NM9JRBEQZ7B8Q | no-expiry
HOXGL8ON3RG0IKYCHCUD | no-expiry

该命令使用以下语法:

mc [GLOBALFLAGS] admin accesskey ls             \
                                 ALIAS          \
                                 [USER]         \
                                 [--all]        \
                                 [--self]       \
                                 [--temp-only]  \
                                 [--users-only]
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

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

参数

ALIAS

mc-cmd

Required

MinIO 部署的 alias

USER

mc-cmd

Optional

要显示其访问密钥的用户名称。 多个用户名之间使用空格分隔。

--all

mc-cmd

Optional

列出所有用户及其关联的任意访问密钥或临时 STS 密钥。 需要具有该部署的管理员权限。

此标志与该命令的其他可用标志互斥。

--svcacc-only

mc-cmd

Optional

列出部署上的临时 Security Token Service (STS) keys

此标志与该命令的其他可用标志互斥。

--self

mc-cmd

Optional

列出当前已认证用户的访问密钥和 STS 密钥。

此标志与该命令的其他可用标志互斥。

--temp-only

mc-cmd

Optional

列出用户及其访问密钥。 仅返回已关联访问密钥的用户。

运行命令的用户必须具有管理员权限才能使用此标志。

此标志与该命令的其他可用标志互斥。

--users-only

mc-cmd

Optional

列出该部署管理的 MinIO 用户。 与 --all 标志配合使用可列出部署上的所有用户。

全局标志

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

示例

列出所有内置用户及其关联访问密钥

以下命令列出别名为 myminio 的 MinIO 部署所管理的所有用户,以及其关联的任意访问密钥或临时 STS 令牌。

mc admin accesskey list myminio/ --all

返回当前已认证用户的访问密钥列表

以下命令列出 myminio 部署中与当前已认证用户关联的访问密钥或临时 STS 令牌。

mc admin accesskey list myminio/ --self

列出由部署创建并管理的所有用户

以下命令返回当前部署上的所有用户列表。 该列表仅包含由 MinIO IDP 管理的用户,不包含通过 OpenID 或 Active Directory/LDAP 等协议由第三方工具管理的用户。

mc admin accesskey ls myminio/ --all --users-only

返回与用户 miniouser1miniouser2 关联的访问密钥列表

以下命令返回 myminio 部署上这两个用户的访问密钥列表。

mc admin accesskey ls myminio/ miniouser1 miniouser2

行为

S3 兼容性

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

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

8.35 - mc admin group

说明

mc admin group 命令用于管理 MinIO 部署上的组。

用户 的集合。每个组都可以分配一个或多个 策略,用于明确列出允许或拒绝组成员访问的 操作和资源。对于具有相同访问模式和工作负载的用户,组提供了一种 简化的共享权限管理方式。

说明

仅在 MinIO 部署上使用 mc admin

MinIO 不支持将 mc admin 命令用于其他 S3 兼容服务, 无论这些服务声称与 MinIO 部署具有何种兼容性。

组与基于策略的访问控制

MinIO 使用 基于策略的访问控制 (PBAC) 对已成功在部署上 认证 的用户执行 授权。每条策略都包含规则,用于规定该部署上 允许或拒绝的操作/资源。可以为一个组分配一个或多个 策略。属于该组的用户会继承该组已分配的策略。用户的 总权限集合包括其显式分配的策略,以及 通过组成员关系继承的策略。

新创建的组默认 包含任何策略。要配置组的已分配策略,请使用 mc admin policy attach 命令。

有关 MinIO 用户和组的更多信息,请参见 用户管理组管理。有关 MinIO 策略的更多信息, 请参见 MinIO Policy Based Access Control

说明

Deny 会覆盖 Allow

MinIO 遵循 IAM 标准:在同一操作或资源上,Deny 规则会覆盖 Allow 规则。 例如,如果某个用户显式分配的策略对某个操作/资源包含 Allow 规则, 而该用户所属的某个组所分配策略对同一操作/资源包含 Deny 规则, 则 MinIO 只会应用 Deny 规则。

有关 IAM 策略评估逻辑的更多信息,请参见 IAM 文档中的 Determining Whether a Request is Allowed or Denied Within an Account

示例

创建新组

使用 mc admin group add 在兼容 S3 的主机上创建新组:

mc admin group add ALIAS GROUPNAME MEMBER [MEMBER...]
  • ALIAS 替换为兼容 S3 主机的 alias
  • GROUPNAME 替换为要创建的 组名。
  • MEMBER 替换为 S3 主机上 至少 一个 用户。多个成员可按列表方式指定: MEMBER1 MEMBER2 MEMBER3

列出可用组

使用 mc admin group ls 列出兼容 S3 主机上的所有组:

mc admin group ls ALIAS

查看组详情

使用 mc admin group info 查看兼容 S3 主机上的组详细信息:

mc admin group info ALIAS GROUPNAME

删除组

使用 mc admin group rm 从兼容 S3 主机删除组:

mc admin group rm ALIAS GROUPNAME

禁用组

使用 mc admin group disable 禁用兼容 S3 主机上的组:

mc admin group disable ALIAS GROUPNAME

启用组

使用 mc admin group enable 启用兼容 S3 主机上的组:

mc admin group enable ALIAS GROUPNAME

快速参考

mc admin group add TARGET GROUPNAME MEMBERS

将用户添加到 MinIO 部署上的组。如果组不存在,则创建该组。

mc admin group info TARGET GROUPNAME

返回 MinIO 部署上某个组的详细信息。

mc admin group ls TARGET

返回 MinIO 部署上所有组的列表。

mc admin group rm TARGET GROUPNAME

删除 MinIO 部署上的组。

mc admin group enable TARGET GROUPNAME

启用 MinIO 部署上的组。用户只能继承已启用组分配的 策略

mc admin group disable TARGET GROUPNAME

禁用 MinIO 部署上的组。用户不能继承已禁用组分配的 策略

语法

mc admin group add

mc-cmd

将现有用户添加到组中。如果组不存在,该命令会创建组。 命令语法如下:

mc admin group add TARGET GROUPNAME MEMBERS

该命令接受以下参数:

TARGET

mc-cmd

已配置 MinIO 部署的 alias,命令会在该部署上 向新建或现有组添加用户

GROUPNAME

mc-cmd

组名。如果组尚不存在,该命令会创建组。可使用 mc admin group ls 查看部署上的现有组。

组名不能包含 =(等号)或 ,(逗号)字符。

MEMBERS

mc-cmd

要添加到组中的用户名。

该用户 必须 存在于 TARGET MinIO 部署上。可使用 mc admin user ls 查看部署上的可用 用户。

mc admin group info

mc-cmd

返回目标部署上该组的详细信息,例如组内所有 用户 以及分配的 策略。命令语法如下:

mc admin group info TARGET GROUPNAME

该命令接受以下参数:

TARGET

mc-cmd

已配置 MinIO 部署的 alias,用于从该部署中 获取组信息。

GROUPNAME

mc-cmd

组名。

mc admin group ls, list

mc-cmd

列出目标 MinIO 部署上的所有组。命令语法如下:

mc admin group ls TARGET

该命令接受以下参数:

TARGET

mc-cmd

已配置 MinIO 部署的 alias,用于从该部署中 获取组列表。

mc admin group rm, remove

mc-cmd

删除目标 MinIO 部署上的组。删除组 不会 删除该组中的任何成员用户。请使用 mc admin user rm 从组中移除用户。

命令语法如下:

mc admin group rm TARGET GROUPNAME

该命令接受以下参数:

TARGET

mc-cmd

已配置 MinIO 部署的 alias,命令会在该部署上 删除组。

GROUPNAME

mc-cmd

要删除的组名。

mc admin group enable

mc-cmd

启用目标 MinIO 部署上的组。用户只能从已启用组继承 策略。 组在创建时默认处于启用状态。命令语法如下:

mc admin group enable TARGET GROUPNAME

该命令接受以下参数:

TARGET

mc-cmd

已配置 MinIO 部署的 alias,命令会在该部署上 启用组。

GROUPNAME

mc-cmd

要启用的组名。

mc admin group disable

mc-cmd

禁用目标 MinIO 部署上的组。用户不能从已禁用组继承 策略。命令语法如下:

mc admin group disable TARGET GROUPNAME

该命令接受以下参数:

TARGET

mc-cmd

已配置 MinIO 部署的 alias,命令会在该部署上 禁用组。

GROUPNAME

mc-cmd

要禁用的组名。

8.36 - mc admin policy ls

语法

列出目标 MinIO 部署上的所有策略。

mc admin policy list 命令与 mc admin policy ls 具有等效功能。

以下命令显示 alias play 上当前存在的策略列表。

mc admin policy ls play

该命令的语法如下:

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

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

参数

mc admin policy ls 命令接受以下参数:

TARGET

mc-cmd

已配置 MinIO 部署的 alias,命令将从该部署列出可用策略。

全局标志

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

示例

列出别名为 myminio 的部署上存在的策略。

mc admin policy ls myminio

输出

该命令返回的输出类似如下:

readwrite
writeonly

8.37 - mc admin user rm

语法

mc admin user rm 命令用于在目标 MinIO 部署上移除 MinIO 用户

mc admin user remove 命令与 mc admin user rm 的功能等效。

要管理外部身份提供商用户,请参阅 OIDCAD/LDAP

以下命令会在 myminio MinIO 部署上移除用户 myuser

mc admin user rm myminio myuser

在目标 MinIO 部署上移除用户。

命令语法如下:

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

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

参数

ALIAS

mc-cmd

Required

已配置 MinIO 部署的 alias,该部署中包含要移除的用户。

USERNAME

mc-cmd

Required

要移除的用户名。

全局标志

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

示例

移除用户

使用 mc admin user rm 从 MinIO 部署中移除用户:

mc admin user rm ALIAS USERNAME
  • ALIAS 替换为 MinIO 部署的 alias
  • USERNAME 替换为要移除的用户名。

行为

S3 兼容性

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

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

8.38 - mc admin user svcacct ls

警告

重要

此命令已被替代,并将在未来的 MinIO 客户端版本中弃用。

从 MinIO客户端版本RELEASE.2024-10-08T09-37-26Z 起,请使用 mc admin accesskey ls 命令列出 MinIO 内置 IDP 用户的访问密钥。

对于 AD/LDAP 用户的访问密钥,请使用 mc idp ldap accesskey ls 命令。

语法

mc admin user svcacct ls 命令列出与指定用户关联的所有访问密钥。

mc admin user svcacct list 别名与 mc admin user svcacct ls 具有等效功能。

以下命令列出用户名为 admin1 的用户关联的所有访问密钥:

mc admin user svcacct ls myminio admin1

输出如下所示:

   Access Key        | Expiry
5XF3ZHNZK6FBDWH9JMLX | 2023-06-24 07:00:00 +0000 UTC
F4V2BBUZSWY7UG96ED70 | 2023-12-24 18:00:00 +0000 UTC
FZVSEZ8NM9JRBEQZ7B8Q | no-expiry
HOXGL8ON3RG0IKYCHCUD | no-expiry
说明

新增: RELEASE.2023-05-26T23-31-54Z

访问密钥列表包含到期时间;对于永不过期的密钥,显示 no-expiry

命令语法如下:

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

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

参数

ALIAS

mc-cmd

Required

MinIO 部署的 alias

USER

mc-cmd

Required

要列出其访问密钥的用户名。

全局标志

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

行为

S3 兼容性

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

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

8.39 - mc admin accesskey rm

语法

mc admin accesskey rm 命令用于删除部署中与某个用户关联的访问密钥。

mc admin accesskey remove 命令与 mc admin accesskey rm 的功能等效。

注意

警告

删除后,应用程序将无法再使用该访问密钥进行身份验证。

以下命令会删除指定的访问密钥:

mc admin accesskey rm myminio myuserserviceaccount

命令语法如下:

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

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

参数

ALIAS

mc-cmd

Required

MinIO 部署的 alias

ACCESSKEYTOREMOVE

mc-cmd

Required

要删除的访问密钥。

全局标志

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

行为

S3 兼容性

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

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

8.40 - mc admin heal

说明

mc admin heal 命令会扫描受损或损坏的对象,并对这些对象执行自愈。

mc admin heal 资源开销较大,通常不需要手动执行,即使在驱动器故障或数据损坏事件之后也是如此。

作为正常运行的一部分,MinIO 会:

  • 在每次 POSTGET 操作时,自动修复因静默位腐坏、驱动器故障或其他问题而受损的对象。
  • 使用 scanner 周期性执行后台对象自愈。
  • 在更换驱动器后积极执行对象自愈。

有关 MinIO 如何执行对象自愈的更多详细信息,请参阅 对象自愈

说明

仅在 MinIO 部署上使用 mc admin

MinIO 不支持将 mc admin 命令用于其他 S3 兼容服务, 无论这些服务声称与 MinIO 部署具有何种兼容性。

语法

mc admin heal 使用以下语法:

mc admin heal [FLAGS] TARGET             \
                      [--all-drives, -a] \
                      [--force]          \
                      [--verbose, -v]

mc admin heal 支持以下参数:

TARGET

mc-cmd

Required

执行对象自愈的存储桶或存储桶前缀的完整路径。 指定已配置的 MinIO 部署的 alias 作为该路径的前缀。 例如:

mc admin heal play/mybucket/myprefix

如果 TARGET 存储桶或存储桶前缀存在活动的自愈扫描,命令将返回该扫描的状态。

--all-drives, -a

mc-cmd

Optional

选择所有驱动器并显示详细信息。

--force

mc-cmd

Optional

禁用警告提示。

--verbose, -v

mc-cmd

Optional

显示离线和故障驱动器的自愈信息。

自愈颜色

某些版本的 MinIO 使用颜色标识来区分不同自愈状态的对象。

说明

变更: mc

RELEASE.2024-11-17T19-35-25Z

颜色含义已更新。

  • 绿色表示存储桶健康。
  • 黄色表示存储桶在一个或多个驱动器上需要执行自愈。
  • 红色表示一个或多个驱动器处于不健康状态。
  • 灰色表示自愈状态不确定。

8.41 - mc admin policy rm

语法

从目标 MinIO 部署中移除 IAM 策略。

mc admin policy remove 命令与 mc admin policy rm 具有等效功能。

以下命令从 myminio MinIO 部署中移除名为 writeonly 的策略:

mc admin policy rm myminio writeonly

该命令的语法如下:

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

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

参数

mc admin policy rm 命令接受以下参数:

TARGET

mc-cmd

要移除策略的已配置 MinIO 部署的 alias

POLICYNAME

mc-cmd

要移除的策略名称。

全局标志

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

示例

移除名为 listbuckets 的策略。

mc admin policy rm myminio listbuckets

8.42 - mc admin user sts info

语法

mc admin user sts info 命令用于检索指定 STS 凭证的信息,例如生成该凭证的父 MinIO user、关联策略和过期时间。

STS 凭证为 MinIO 部署提供临时访问权限。

以下命令检索具有指定访问密钥的 STS 凭证信息:

mc admin user sts info myminio/ "J123C4ZXEQN8RK6ND35I"

该命令的语法如下:

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

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

参数

ALIAS

mc-cmd

Required

MinIO 部署的 alias

STSACCESSKEY

mc-cmd

Required

STS 凭证的访问密钥。

--policy

mc-cmd

Optional

以 JSON 格式打印附加到指定 STS 凭证的策略。

全局标志

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

行为

S3 兼容性

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

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

8.43 - mc admin user svcacct rm

警告

重要

此命令已被替代,并将在未来的 MinIO 客户端版本中弃用。

从 MinIO客户端版本RELEASE.2024-10-08T09-37-26Z 起,请使用 mc admin accesskey rm 命令删除内置 MinIO IDP 用户的访问密钥。

对于 AD/LDAP 用户的访问密钥,请使用 mc idp ldap accesskey rm 命令。

语法

mc admin user svcacct rm 命令会删除部署中与某个用户关联的访问密钥。

mc admin user svcacct remove 命令与 mc admin user svcacct rm 的功能等效。

删除后,应用程序将无法再使用该访问密钥进行身份验证。

以下命令会删除指定的访问密钥:

mc admin user svcacct rm myminio myuserserviceaccount

命令语法如下:

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

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

参数

ALIAS

mc-cmd

Required

MinIO 部署的 alias

SERVICEACCOUNT

mc-cmd

Required

要删除的服务账户访问密钥。

全局标志

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

行为

S3 兼容性

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

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

8.44 - mc admin info

描述

mc admin info 命令显示 MinIO 服务器的信息。 对于分布式 MinIO 部署,mc admin info 会显示部署中每个 MinIO 服务器的信息。

说明

新增: mc

RELEASE.2024-05-03T11-21-07Z

命令输出包含集群的 erasure code 设置信息。 该信息在输出中以 EC:# 格式显示。

命令输出如下所示:

●  play.min.io
   Uptime: 2 hours
   Version: 2024-05-10T08:24:14Z
   Network: 1/1 OK
   Drives: 4/4 OK
   Pool: 1

Pools:
   1st, Erasure sets: 1, Drives per erasure set: 4

0 B Used, 3 Buckets, 0 Objects
4 drives online, 0 drives offline, EC:1

示例

以下示例假定 play 别名已存在于 mc 配置文件 中。你可以将 play 替换为 你首选 S3 兼容部署的别名。

有关别名的更多信息,请参阅 mc alias

mc admin info play

语法

mc admin info 语法如下:

mc admin info TARGET      \
              [--offline]

将已配置 MinIO 部署的 alias 指定为 TARGET

参数

TARGET

mc-cmd

Required

要显示信息的部署 alias

--offline

mc-cmd

Optional

仅显示离线驱动器或节点。

8.45 - mc admin user svcacct

警告

重要

这些命令已被替代,并将在未来的 MinIO 客户端版本中弃用。

自 MinIO客户端版本RELEASE.2024-10-08T09-37-26Z 起,与内置 MinIO IDP 用户及其访问密钥或 STS 令牌相关的功能,请使用 mc admin accesskey 命令及其子命令。

对于 AD/LDAP 用户的访问密钥,请使用 mc idp ldap accesskey 命令及其子命令。

描述

mc admin user svcacct 命令及其子命令用于在 MinIO 部署上创建和管理 访问密钥

自 MinIO客户端版本RELEASE.2024-10-08T09-37-26Z 起,这些命令已由 mc admin accesskeymc idp ldap accesskey 取代。 该命令及其子命令将在未来的 MinIO 客户端版本中弃用。

每个访问密钥都关联到一个 用户身份,并继承其父用户所附加的 策略 父用户所属组的策略。 每个访问密钥还支持可选的内联策略,用于进一步将访问限制在父用户可用操作和资源的子集范围内。

mc admin user svcacct 仅支持为 MinIO 托管Active Directory/LDAP 托管 账户创建访问密钥。

如需为 OpenID Connect 托管用户 创建访问密钥,请登录 MinIO Console 并通过 UI 生成访问密钥。

mc admin user svcacct 命令包含以下子命令:

子命令

描述

add

mc admin user svcacct add 命令为现有 MinIO 或 AD/LDAP 用户添加新的访问密钥。

disable

mc admin user svcacct disable 命令用于禁用现有访问密钥。

edit

mc admin user svcacct edit 命令用于修改与指定用户关联的访问密钥配置。

enable

mc admin user svcacct enable 命令用于启用现有访问密钥。

info

mc admin user svcacct info 命令返回指定 access key 的描述信息。

list

mc admin user svcacct ls 命令列出与指定用户关联的所有访问密钥。

rm

mc admin user svcacct rm 命令会删除部署中与某个用户关联的访问密钥。

8.46 - mc admin kms key

描述

mc admin kms key 命令通过 MinIO Key Encryption Service (KES) 执行加密密钥管理操作。

说明

仅在 MinIO 部署上使用 mc admin

MinIO 不支持将 mc admin 命令用于其他 S3 兼容服务, 无论这些服务声称与 MinIO 部署具有何种兼容性。

语法

mc admin kms key create

mc-cmd

在 Key Management System (KMS) 上创建一个新的主密钥。

该命令语法如下:

mc admin kms key create TARGET [KEY_NAME]

该命令接受以下参数:

TARGET

mc-cmd

指定已配置 MinIO 部署的 alias

TARGET 部署 必须 包含已配置的 MinIO Key Encryption Service (KES) 服务器。

KEY_NAME

mc-cmd

指定新主密钥的名称。

mc admin kms key status

mc-cmd

请求 Key Management System (KMS) 主密钥的信息。

该命令语法如下:

mc admin kms key status TARGET [KEY_NAME]

该命令接受以下参数:

TARGET

mc-cmd

指定已配置 MinIO 部署的 alias

TARGET 部署 必须 包含已配置的 MinIO Key Encryption Service (KES) 服务器。

KEY_NAME

mc-cmd

指定 KMS 上主密钥的名称。

省略此参数可返回 TARGET 所指部署上的默认主密钥。

mc admin kms key list

mc-cmd

列出 MinIO 实例的所有 Key Management System (KMS) 密钥。

该命令语法如下:

mc admin kms key list TARGET

该命令接受以下参数:

TARGET

mc-cmd

指定已配置 MinIO 部署的 alias

TARGET 部署 必须 包含已配置的 MinIO Key Encryption Service (KES) 服务器。

8.47 - mc admin logs

说明

需要完成 SUBNET 注册

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

说明

变更: RELEASE.2022-12-02T23-48-47Z

mc support logs 已迁移至 mc admin logs,并提供了更简化的命令接口,用于显示 MinIO 部署的服务器日志。

对于由 systemd 管理的部署,其输出与 journalctl -uf minio 提供的内容类似。

描述

使用 mc admin logs 命令显示 MinIO 服务器日志。

上传功能默认保持禁用,只有在某个部署上明确选择加入后才会启用。 如果已经启用,你可以随时使用 mc support callhome disable 关闭该功能。

示例

显示某个部署的日志

以下命令显示别名为 minio1 的部署中任意类型的最近 10 条服务器日志。

mc admin logs minio1

显示某个节点最近 5 条日志条目

以下命令显示别名为 minio1 的部署中 node1 节点最近的 5 条日志条目。

mc admin logs --last 5 myminio node1

显示某个部署的 application 类型日志条目

以下命令显示别名为 minio1 的部署中所有节点的 application 类型日志条目。

mc admin logs --type application minio1

语法

命令语法如下:

mc admin logs [GLOBAL FLAGS]     \
              [--last, -l value] \
              [--type, -t value] \
              ALIAS              \
              [NODE]

参数

ALIAS

mc-cmd

Required

MinIO 部署的 alias

--last, -l

mc-cmd

Optional

仅显示最近指定数量的日志条目。

如果不包含此标志,则最多显示最近 10 条日志条目。

--type, --type

mc-cmd

Optional

列出指定类型的日志条目。 有效类型为 minioapplicationall

如果未指定,则显示所有类型的日志条目。

NODE

mc-cmd

Optional

在分布式部署中,输入节点名称以指定要显示其日志的节点。

全局标志

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

8.48 - mc admin policy

说明

变更: mc

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

以下命令已弃用:

新增以下命令:

说明

mc admin policy 命令用于管理可与 MinIO 基于策略的访问控制 (PBAC) 配合使用的策略。 MinIO PBAC 使用与 IAM 兼容的策略 JSON 文档来定义访问 MinIO 服务器资源的规则。

有关 MinIO PBAC 的完整文档(包括策略文档 JSON 结构与语法),请参阅 访问管理。要管理使用 LDAP 认证的部署中的策略,请参阅 mc idp ldap policy

子命令

mc admin policy 包含以下子命令:

子命令

说明

attach

将一个或多个 IAM 策略附加到 MinIO 管理的用户或组

create

在目标 MinIO 部署上创建一个新策略。

detach

MinIO 管理的用户或组 中移除一个或多个 IAM 策略。

entities

列出目标 MinIO 部署中与策略、用户或组关联的实体。

info

如果目标 MinIO 部署上存在指定策略,则以 JSON 格式返回该策略。

ls

列出目标 MinIO 部署上的所有策略。

rm

从目标 MinIO 部署中移除 IAM 策略。

8.49 - mc admin prometheus

说明

mc admin prometheus 命令及其子命令用于访问 MinIO Prometheus 指标。

子命令

mc admin prometheus 包含以下子命令:

子命令

说明

generate

mc admin prometheus generate 命令会生成一个用于 Prometheus 的指标抓取配置文件。

metrics

mc admin prometheus metrics 命令用于输出集群的 Prometheus 指标。

8.50 - mc admin rebalance

权限

执行此命令的用户必须拥有该部署的 admin:Rebalance 策略操作

描述

mc admin rebalance 命令可用于在 MinIO 部署上启动、监控或停止再平衡操作。 再平衡会在部署中的所有池之间重新分配对象。

当新增 服务器池 时,MinIO 不会自动对对象执行再平衡。 相反,MinIO 会将 新对象写入 相较于部署中其他可用池可用空间更多的池。 触发手动再平衡流程会促使 MinIO 扫描整个部署,并按需移动对象,以使所有池的可用空间大致相当。

这是一项开销大且耗时的操作。 建议仅在部署负载较轻或空闲时运行再平衡流程。 如果在再平衡期间发生写操作,这些写操作会并行处理,并写入当前未参与再平衡的池。

你可以停止再平衡,并在之后按需重新启动。

使用以下命令跟踪正在进行的再平衡操作进度:

mc admin trace --call rebalance ALIAS
说明

仅在 MinIO 部署上使用 mc admin

MinIO 不支持将 mc admin 命令用于其他 S3 兼容服务, 无论这些服务声称与 MinIO 部署具有何种兼容性。

mc admin rebalance 命令具有以下子命令:

子命令 说明
mc admin rebalance start 在 MinIO 部署上启动再平衡操作。
mc admin rebalance status 输出正在进行的再平衡操作的当前状态。
mc admin rebalance stop 停止正在进行中的再平衡操作。

语法

mc admin rebalance start

mc-cmd

为 MinIO 部署启动再平衡操作。

假设一个 MinIO 部署有两个池,并分配了别名 minio1。 其中一个池有 250 GB 可用空间,另一个池有 3 TB 可用空间。

mc admin rebalance 命令会将对象从可用空间较少的池迁移到可用空间较多的池,使两个池的可用空间大致相等。

mc admin rebalance start minio1

该命令的语法如下:

mc [GLOBALFLAGS] admin rebalance start ALIAS
  • 将 ALIAS 替换为要执行再平衡的 MinIO 部署的 别名

mc admin rebalance status

mc-cmd

查询具有活动再平衡进程的部署,并返回该再平衡进程的状态信息。

状态输出包括再平衡操作 ID、操作时间,以及部署中每个池的详细信息。 对每个池,状态会显示池 ID、该池的再平衡状态、已用空间百分比以及该池的再平衡进度。

mc admin rebalance status minio1

该命令的语法如下:

mc [GLOBALFLAGS] admin rebalance ALIAS
  • 将 ALIAS 替换为 MinIO 部署的 别名

mc admin rebalance stop

mc-cmd

结束指定部署上正在进行中的再平衡任务。

mc admin rebalance stop minio1

该命令的语法如下:

mc [GLOBALFLAGS] admin rebalance stop ALIAS
  • 将 ALIAS 替换为 MinIO 部署的 别名

全局标志

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

行为

先备份集群设置

在开始下线操作前,使用 mc admin cluster bucket exportmc admin cluster iam export 命令分别对存储桶元数据和 IAM 配置进行快照。 必要时可使用这些快照恢复存储桶/IAM 设置,以便从用户或进程错误中恢复。

再平衡会忽略已过期对象和尾部 DeleteMarker

RELEASE.2023-06-23T20-26-00Z 开始,再平衡会忽略那些基于父存储桶已配置的 生命周期规则 而过期的对象版本。

再平衡还会忽略仅剩余版本为 删除标记 的对象。 这可避免对已被视为完全删除的对象执行跨池 I/O

MinIO 依赖 scanner 来识别并清理这些过期对象或尾部 DeleteMarker 对象。

8.51 - mc admin replicate

说明

变更: RELEASE.2023-01-11T03-14-16Z

描述

mc admin replicate 命令用于为一组 MinIO 对等站点创建并管理 站点复制

站点复制类似于 active-active 存储桶复制,但适用于多个 MinIO 部署。 在这组站点中,无论 IAM 设置、存储桶或对象发生何种变更,该变更都会在站点复制组中的所有站点间复制。

存储桶复制 用于在单个部署内或跨部署将特定存储桶或对象从一个位置镜像到另一个位置,而站点复制会持续将整个 MinIO 站点镜像到其他站点。

在配置站点复制时,mc admin replicate 仅支持 分布式部署 的站点复制。

在初始化新的站点复制配置时,只允许一个部署包含数据。

站点复制会对所有存储桶强制启用 存储桶版本控制,包括现有存储桶以及启动站点复制后新增的任何存储桶。 与仅处理对象最新版本的 mc mirror 相比,站点复制会完整同步版本化对象。

说明

仅在 MinIO 部署上使用 mc admin

MinIO 不支持将 mc admin 命令用于其他 S3 兼容服务, 无论这些服务声称与 MinIO 部署具有何种兼容性。

mc admin replicate 命令包含以下子命令:

子命令 描述
mc admin replicate add 创建新的站点复制配置,或扩展现有配置。
mc admin replicate info 返回站点复制配置信息。
mc admin replicate resync 当第二个站点丢失数据时,将一个站点中的内容重新同步到第二个站点。
mc admin replicate rm 删除整个站点复制配置,或将一个或多个对等站点从站点复制中移除。
mc admin replicate status 显示参与站点之间 可复制数据 的状态。
mc admin replicate update 修改站点复制配置中指定对等站点的 endpoint。

语法

mc admin replicate add

mc-cmd

创建或扩展站点复制配置。 按 MinIO 的建议,该配置默认使用异步站点复制。

若要启用同步站点复制,请先使用此命令创建复制配置。 然后使用 mc admin replicate update --mode sync 更新配置。

假设一个多站点 MinIO 拓扑包含三个独立的 MinIO 部署,使用以下 别名minio1minio2minio3。 三个站点之间都具备完整的双向网络访问,并且站点间延迟较低。

mc admin replicate add minio1 minio2 minio3

以下命令将一个现有站点复制配置(包含对等站点 minio1minio2minio3minio4)扩展到新的对等站点 minio5minio5 不包含任何数据。 请先列出 所有 现有对等站点。 最后列出要扩展到的站点。

如果任一现有站点不可达,请先使用 mc admin replicate rm 删除不可达站点,再继续扩展站点复制。

mc admin replicate add minio1 minio2 minio3 minio4 minio5

以下命令创建新的站点复制配置,并在对等站点 minio1minio2minio3 之间同步 ILM 过期规则。

mc admin replicate add minio1 minio2 minio3 --replicate-ilm-expiry

命令语法如下:

mc [GLOBALFLAGS] admin replicate add      \
                            ALIAS1        \
                            ALIAS2        \
                            [ALIAS3 ...]  \
                            [--replicate-ilm-expiry]

ALIAS

mc-cmd

Required

要纳入站点复制的 MinIO 部署 别名

创建站点复制至少需要两个 MinIO 部署别名。 只有第一个别名可以包含存储桶或对象。 第一个站点也可以为空。

要将现有站点复制扩展到一个或多个新站点,请先列出待扩展的站点复制集合中所有现有对等站点的 别名。 然后再附加一个或多个 别名,将其加入现有站点复制。 新增对等站点必须为空。

--replicate-ilm-expiry

mc-cmd

Optional

说明

新增: mc

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

在对等站点间复制 ILM expiration 规则。

mc admin replicate update

mc-cmd

修改参与站点复制的现有对等站点所使用的 endpoint。

说明

变更: RELEASE.2023-01-11T03-14-16Z

mc admin replicate edit renamed to mc admin replicate update.

mc admin replicate update                                                   \
                   minio2                                                 \
                   --deployment-id c1758167-4426-454f-9aae-5c3dfdf6df64   \
                   --endpoint https://minio2:9000

命令语法如下:

mc [GLOBALFLAGS] admin replicate update                     \
                            ALIAS                           \
                            --deployment-id [deploymentID]  \
                            --endpoint [newEndpoint]        \
                            --mode ["sync" | "async"]       \
                            --enable-ilm-expiry-replication \
                            --disable-ilm-expiry-replication

ALIAS

mc-cmd

Required

MinIO 部署的 别名

--bucket-bandwidth

mc-cmd

以每秒比特为单位设置存储桶的默认带宽限制。

有效单位包括:

  • B 表示字节
  • K 表示千字节
  • M 表示兆字节
  • G 表示吉字节
  • T 表示太字节
  • Ki 表示 kibibyte
  • Mi 表示 mibibyte
  • Gi 表示 gibibyte
  • Ti 表示 tebibyte

例如,以下命令将 myminio 部署上的复制带宽限制为不超过每秒 2 Gigabytes。

mc admin replicate update myminio --deployment-id c1758167-4426-454f-9aae-5c3dfdf6df64 --bucket-bandwidth "2G"

--deployment-id

mc-cmd

Required

要修改的部署唯一 ID。

可通过运行 mc admin replicate info ALIAS 获取部署 ID

--disable-ilm-expiry-replication

mc-cmd

Optional

说明

新增: mc

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

停止在对等站点之间复制 ILM 过期规则。 对等站点之间已经同步的现有规则不会从任何对等站点移除。

--enable-ilm-expiry-replication

mc-cmd

Optional

说明

新增: mc

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

开始在对等站点之间复制 ILM 过期规则。

--endpoint

mc-cmd

Required

与该对等站点关联的新 endpoint 或 URL。

--mode

mc-cmd

Optional

指定 MinIO 对该对等站点执行同步或异步复制操作。 可用值为 syncasync

默认值为 async

--sync

mc-cmd

Optional

警告

重要

--sync 标志自 RELEASE.2023-07-07T05-25-51Z 起已弃用。 请改用 --mode

启用或禁用同步站点复制。 可用值为 enabledisable。 若未定义,MinIO 使用异步站点复制。

mc admin replicate rm, remove

mc-cmd

说明

变更: RELEASE.2023-01-11T03-14-16Z

mc admin replicate remove 子命令重命名为 mc admin replicate rm

从站点复制配置中移除一个或多个站点。

请注意,如果你打算未来将该站点重新加入站点复制配置,则其必须不包含任何 可复制数据

从包含 minio2 的现有站点复制配置中,移除所有已连接站点的站点复制。 这会删除所有参与站点的站点复制配置。

mc admin replicate rm      \
                   minio2  \
                   --all   \
                   --force

从包含 minio2 的现有站点复制配置中移除别名为 minio5minio6 的站点

mc admin replicate rm      \
                   minio2  \
                   minio5  \
                   minio6  \
                   --force

命令语法如下:

mc [GLOBALFLAGS] admin rm          \
                       TARGET      \
                       ALIAS1      \
                       [ALIAS2...] \
                       --all       \
                       --force

TARGET

mc-cmd

Required

要操作的站点复制中,处于活动状态的 MinIO 部署 别名。 除非要从站点复制中移除所有站点,否则不要使用待移除部署的别名。

ALIAS

mc-cmd

Optional

要从站点复制配置中移除的活动 MinIO 部署 别名。 可重复指定以移除更多站点。

--all

mc-cmd

Optional

包含此标志可移除为站点复制配置的所有站点,并结束该站点复制配置。

--force

mc-cmd

Required

此标志会强制从站点复制配置中移除指定的对等站点。

mc admin replicate info

mc-cmd

返回站点复制配置中各站点的信息。

示例
mc admin replicate info minio1
语法
mc [GLOBALFLAGS] admin replicate info ALIAS

ALIAS

mc-cmd

Required

站点复制配置中活动 MinIO 部署的 别名

mc admin replicate status

mc-cmd

显示站点复制配置中站点、存储桶、用户、组或策略的状态。

显示包含站点 minio1 的站点复制配置的整体复制状态。

mc admin replicate status minio1

显示包含站点 minio1 的站点复制配置中,跨站点的存储桶复制状态。

mc admin replicate status     \
                   minio1     \
                   --buckets

显示包含站点 minio1 的站点复制配置中,名为 images 的存储桶在跨站点间的站点复制状态。

mc admin replicate status           \
                    minio1          \
                    --bucket images

显示包含站点 minio1 的站点复制配置中,用户 janedoe 设置在跨站点间的站点复制状态。

mc admin replicate status         \
                   minio1         \
                   --user janedoe

上述示例的输出类似如下:

Bucket replication status:
●  30/30 Buckets in sync

Policy replication status:
●  5/5 Policies in sync

User replication status:
●  3/3 Users in sync

Group replication status:
No Groups present

ILM Expiry Rules replication status:
●  5/5 ILM Expiry Rules in sync

Object replication status:
Replication status since 1 day
Summary:
Replicated:    0 objects (0 B)
Queued:        - 0 objects, (0 B) (avg: 0 objects, 0 B; max: 0 objects, 0 B)
Received:      0 objects (0 B)

显示包含站点 minio1 的站点复制配置中,规则 ID 为 ckok9v5b4dtgofkbi6tg 的 ILM 过期规则在跨站点间的站点复制状态。

mc admin replicate status minio1 --ilm-expiry-rule ckok9v5b4dtgofkbi6tg

输出类似如下:

●  ILM Expiry Rule replication summary for: ckok9v5b4dtgofkbi6tg

ILMExpiryRule   | MINIO1          | MINIO2
ILM Expiry Rule ||
mc [GLOBALFLAGS] admin replicate status          \
                   TARGET                        \
                   [--all]                       \
                   [--buckets]                   \
                   [--bucket nameOfBucket]       \
                   [--groups]                    \
                   [--group nameOfGroup]         \
                   [--ilm-expiry-rules]          \
                   [--ilm-expiry-rule <rule ID>] \
                   [--policies]                  \
                   [--policy nameOfPolicy]       \
                   [--users]                     \
                   [--user accessKey]

TARGET

mc-cmd

Required

站点复制配置中活动 MinIO 部署的 别名

--all

mc-cmd

Optional

显示所有可用的站点复制状态信息。

--buckets

mc-cmd

Optional

显示所有存储桶的复制状态。

--bucket

mc-cmd

Optional

在该标志后指定存储桶名称,以显示特定存储桶的复制状态。

--groups

mc-cmd

Optional

显示所有组的复制状态。

--group

mc-cmd

Optional

在该标志后指定组名称,以显示特定组的复制状态。

--ilm-expiry-rules

mc-cmd

Optional

说明

新增: mc

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

显示 ILM 过期规则的同步信息。

--ilm-expiry-rule 互斥

--ilm-expiry-rule

mc-cmd

Optional

说明

新增: mc

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

显示指定 ILM 过期规则的复制状态信息。

--ilm-expiry-rules 互斥

--policies

mc-cmd

Optional

显示所有策略的复制状态。

--policy

mc-cmd

Optional

在该标志后指定策略名称,以显示特定策略的复制状态。

--users

mc-cmd

Optional

显示所有用户的复制状态。

--user

mc-cmd

Optional

在该标志后指定用户名,以显示特定用户的复制状态。

mc admin replicate resync

mc-cmd

在数据丢失场景下,将复制配置中一个站点的数据重新同步到复制配置中的第二个站点。

以下命令启动重新同步过程,将 minio1 的数据恢复到 minio2

mc admin replicate resync start minio1 minio2

以下命令显示当前进行中的重新同步状态。

mc admin replicate resync status minio1 minio2

以下命令停止进行中的重新同步。

mc admin replicate resync cancel minio1 minio2
mc [GLOBALFLAGS] admin replicate resync start|status|cancel ALIAS1 ALIAS2
  • ALIAS1 替换为拥有待恢复数据的站点别名。
  • ALIAS2 替换为需要重新同步数据的站点别名。

start

mc-cmd

从拥有数据的一个站点到需要同步的第二个站点,发起新的重新同步流程。

status

mc-cmd

显示已配置站点复制的两个站点之间,现有重新同步流程的状态。

cancel

mc-cmd

结束已配置站点复制的两个站点之间当前进行中的重新同步流程。

alias1

mc-cmd

站点复制配置中活动 MinIO 部署的 别名,其包含你希望重新同步到另一个站点的数据。

alias2

mc-cmd

站点复制配置中活动 MinIO 部署的 别名,其需要从另一个站点重新同步数据。

全局标志

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

8.52 - mc admin scanner

说明

mc admin scanner 命令提供有关 scanner 进程的信息。

子命令

mc admin scanner 包含以下子命令:

子命令

说明

status

mc admin scanner status 命令会显示 MinIO Server 的 scanner 信息的实时摘要。

trace

mc admin scanner trace 命令会显示目标 MinIO 部署上发生的 scanner 相关 API 操作。

8.53 - mc admin service

说明

mc admin service 命令可用于重启或解除冻结 MinIO 服务器。

mc admin service 会同时影响目标部署中的 所有 MinIO 服务器。 该命令会中断 MinIO 部署上正在进行的 API 操作。对某个部署执行此命令时请谨慎。

说明

mc admin 仅用于 MinIO 部署

MinIO 不支持将 mc admin 命令用于其他 S3 兼容服务, 无论这些服务声称与 MinIO 部署具有何种兼容性。

示例

重启目标部署中的 MinIO 服务器

以下示例使用默认的 myminio 别名。myminio 别名指向运行在 9000 端口上的本地 minio 服务器。有关安装并运行本地 minio 服务器实例的更多信息,请参阅 <installation instructions>。

有关别名的更多信息,请参阅 mc alias

mc admin service restart myminio

恢复目标部署上的 S3 调用

以下示例使用默认的 myminio 别名。myminio 别名指向运行在 9000 端口上的本地 minio 服务器。有关安装并运行本地 minio 服务器实例的更多信息,请参阅 <installation instructions>。

有关别名的更多信息,请参阅 mc alias

mc admin service unfreeze myminio

语法

mc admin service 的语法如下:

mc admin service COMMAND [ARGUMENTS]

mc admin service 支持以下命令:

restart

mc-cmd

重启 MinIO 服务器。 如有需要,命令可能会根据状态建议重启节点。

mc admin service restart 的语法如下:

mc admin service restart ALIAS

指定已配置 MinIO 部署的 aliasrestart 会重启该部署中的 所有 MinIO 服务器。

unfreeze

mc-cmd

恢复 MinIO 集群上的 S3 API 调用。

mc admin service unfreeze 的语法如下:

mc admin service unfreeze ALIAS

指定已配置 MinIO 部署的 alias

8.54 - mc admin trace

说明

mc admin trace 命令显示目标 MinIO 部署上发生的 API 操作。

说明

仅在 MinIO 部署上使用 mc admin

MinIO 不支持将 mc admin 命令用于其他 S3 兼容服务, 无论这些服务声称与 MinIO 部署具有何种兼容性。

示例

监控所有 API 操作

使用 mc admin trace 监控 MinIO 部署上的 API 操作:

mc admin trace -a ALIAS

查看返回 503 错误的调用

使用 mc admin trace 监控返回 503 Service Unavailable 错误的 API 操作:

mc admin trace -v --status-code 503 ALIAS

查看指定路径的控制台跟踪

使用 mc admin trace 监控指定路径的活动:

mc admin trace --path my-bucket/my-prefix/* ALIAS
  • ALIAS 替换为 MinIO 部署的 alias
  • my-bucket/my-prefix/* 替换为你要跟踪的存储桶、前缀和对象名称或通配符。

查看响应大小大于 1Mb 的控制台跟踪

使用 mc admin trace 监控超过指定大小的响应:

mc admin trace --filter-response --filter-size 1Mb ALIAS
  • ALIAS 替换为 MinIO 部署的 alias
  • 1Mb 替换为所需的响应大小。

查看请求操作时长大于 5ms 的控制台跟踪

使用 mc admin trace 监控耗时较长的操作:

mc admin trace --filter-duration --filter-size 5ms ALIAS

语法

mc admin trace 的语法如下:

mc admin trace [FLAGS] TARGET

mc admin trace 支持以下参数:

TARGET

mc-cmd

指定已配置 MinIO 部署的 alias,用于监控其 API 操作。

--all, a

mc-cmd

返回 MinIO 部署上的所有流量,包括 MinIO 服务器之间的节点间流量。

--call

mc-cmd

仅跟踪匹配的客户端操作或调用类型。 例如,以下命令仅跟踪 scanner 类型的操作。

mc admin trace --call scanner TARGET

有效的调用类型包括:

  • batch-keyrotation
  • batch-replication
  • bootstrap
  • decommission
  • ftp
  • healing
  • ilm
  • internal
  • os
  • rebalance
  • replication-resync
  • s3
  • scanner
  • storage

如果未指定,MinIO 返回 s3 类型的调用。

--errors, e

mc-cmd

仅返回失败的 API 操作。

--filter-request

mc-cmd

跟踪请求大小大于指定 --filter-size 值的客户端操作或调用。

必须与 --filter-size 标志一起使用。

--filter-response

mc-cmd

跟踪响应大小大于指定 --filter-size 值的客户端操作或调用。

必须与 --filter-size 标志一起使用。

--filter-size

mc-cmd

过滤后的客户端操作或调用的大小限制。

必须与 --filter-request--filter-response 标志之一一起使用。

有效单位包括:

后缀 单位大小
k KB(Kilobyte,1000 Bytes)
m MB(Megabyte,1000 Kilobytes)
g GB(Gigabyte,1000 Megabytes)
t TB(Terrabyte,1000 Gigabytes)
ki KiB(Kibibyte,1024 Bites)
mi MiB(Mebibyte,1024 Kibibytes)
gi GiB(Gibibyte,1024 Mebibytes)
ti TiB(Tebibyte,1024 Gibibytes)

--funcname

mc-cmd

返回输入函数名对应的调用。

--method

mc-cmd

返回指定 HTTP 方法的调用。

--node

mc-cmd

返回指定服务器的调用。

--path

mc-cmd

返回指定路径的调用。

--request-header

mc-cmd

返回与提供的请求头匹配的调用。

--request-query

mc-cmd

返回与提供的请求查询参数匹配的调用。 此调试选项只能在 MinIO Support 指导下使用。

--response-duration

mc-cmd

跟踪响应时长大于指定值的调用。

--response-threshold

mc-cmd

接受时间字符串作为值,例如 5ms。 仅返回响应时间大于所提供阈值的调用。

如果未指定,MinIO 返回响应时间大于 5ms 的调用。

--status-code

mc-cmd

返回指定 HTTP 状态码的调用。

--stats

mc-cmd

在当前跟踪会话期间,为每个被跟踪的函数调用累积聚合统计信息。

输出表包含以下列。

Call

捕获到的客户端操作或函数名称。

Count

客户端操作或调用发生的次数。

RPM

客户端操作或调用的每分钟速率(Rate Per Minute,RPM)。

Avg Time

客户端操作或调用完成所需的平均时间。

Min Time

客户端操作或调用完成所用的最短时间。

Max Time

客户端操作或调用完成所用的最长时间。

Avg TTFB

客户端操作或调用响应的平均首字节时间(Time To First Byte,TTFB)。

Max TTFB

客户端操作或调用响应的最大首字节时间。

Avg Size

客户端操作或调用响应的平均大小。

Errors

因错误失败的客户端操作或调用数量。

RX Avg

客户端操作或调用的平均接收字节数(Bytes Received,RX)。 此统计仅在值不为零(0)时显示。

TX AVG

客户端操作或调用的平均发送字节数(Bytes Sent,TX)。 此统计仅在值不为零(0)时显示。

累积统计信息,例如名称、计数、持续时间、最短时间、最长时间、首字节时间或错误。 最多累积 15 条统计条目。

--verbose

mc-cmd

返回详细输出。

全局标志

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

8.55 - mc admin update

描述

mc admin update 命令会调用 MinIO 兼容的服务端原地更新 API。客户端可传入可选的发布镜像 URL,由服务端把选定的二进制分发到所有节点。

运行该命令后,会显示确认更新的提示。 输入 y 并按 [ENTER],即可确认并继续更新。

用户 必须 对二进制安装目标位置具有 write 权限。

注意

不要在 Silo 上使用默认更新路径

截至 2026-08-05,最新公开 Silo 服务端 RELEASE.2026-08-04T00-00-00Z 在省略 MIRROR_URL 时仍会解析到上游 dl.min.io 发布源,并保留上游 MinIO 签名密钥。对已启用更新的 Silo 服务端运行 mc admin update ALIAS,因此可能会把 Silo 替换成上游 MinIO 二进制。

请在 Silo 服务端设置 MINIO_UPDATE=off,并通过下载与安装、可信软件仓库或手工校验的 Silo 制品升级。本页保留命令契约是为了兼容,并不表示这是推荐的 Silo 升级流程。

说明

仅在 Silo 或兼容的 MinIO 部署上使用 mc admin

mc admin 使用 MinIO 专用管理 API。仅仅兼容通用 S3 API,并不意味着其他对象存储支持这些命令。

注意事项

协调重启

mc admin update 会更新二进制并同时重启部署中的所有服务器。应用应预期短暂不可用,并重试失败或中断的请求;对象操作的原子性并不能让全量集群重启对应用不可见。

请使用协调一致的升级与重启流程。除非发布说明明确声明支持混合版本,否则不要逐节点滚动替换二进制。

权限

执行该命令的用户 必须 对 MinIO 服务端二进制安装目标路径具有 write 权限。

示例

下面的继承形式仅用于说明命令契约。不要对 Silo 执行它,因为省略 MIRROR_URL 会选择上游 MinIO 更新源:

mc admin update ALIAS

ALIAS 替换为目标部署的 alias

运行该命令后,在提示中输入 yes 以确认并执行更新。

语法

mc admin update 语法如下:

mc admin update ALIAS         \
                [MIRROR_URL]  \
                [--yes]

mc admin update 支持以下参数:

ALIAS

mc-cmd

要更新的 MinIO 部署的 alias

如果指定的 ALIAS 对应的是分布式 MinIO 部署,mc admin update 会同时更新该部署中的 所有 MinIO 服务器。

使用 mc alias list 查看已配置的别名及其对应的 MinIO 部署端点。

MIRROR_URL

mc-cmd

目标服务端用于定位 minio 二进制的发布清单 URL。仅仅提供 URL 并不能使制品自动可信;使用这条兼容路径前必须核验完整的更新与签名契约。Silo 运维应优先使用文档化的软件包或手工升级流程。

--yes, -y

mc-cmd

Optional

传入此标志以确认更新,并跳过确认提示。

行为

二进制压缩

说明

变更: RELEASE.2024-01-28T22-35-53Z

mc admin update 会先压缩二进制,再发送到部署中的所有节点。

此功能不适用于 systemctl managed deployments

8.56 - mc admin user

说明

mc admin user 命令及其子命令用于管理 MinIO 用户

客户端 必须 使用与该部署中某个用户关联的 access key 和 secret key 对 MinIO 部署进行认证。 MinIO 用户是 MinIO 身份与访问管理中的关键组成部分。

要管理使用第三方 IDP 进行认证的用户,请使用对应提供方的命令:

说明

仅在 MinIO 部署上使用 mc idp 命令

mc idp ldapmc idp openid 及其子命令仅支持对 MinIO 部署使用。

子命令

mc admin user 包含以下子命令:

子命令

说明

add

mc admin user add 命令会在目标 MinIO 部署中添加一个新的 MinIO 用户

disable

mc admin user disable 命令用于在目标 MinIO 部署上禁用 MinIO 用户

enable

mc admin user enable 命令用于在目标 MinIO 部署上启用 MinIO 用户

info

mc admin user info 命令返回目标 MinIO 部署中某个 MinIO 用户的详细信息。

ls

mc admin user ls 命令会列出目标 MinIO 部署上的所有 MinIO 用户

rm

mc admin user rm 命令用于在目标 MinIO 部署上移除 MinIO 用户

sts info

mc admin user sts info 命令用于检索指定 STS 凭证的信息,例如生成该凭证的父 MinIO user、关联策略和过期时间。

svcacct

mc admin user svcacct 命令及其子命令用于在 MinIO 部署上创建和管理 访问密钥

自 MinIO客户端版本RELEASE.2024-10-08T09-37-26Z 起,这些命令已由 mc admin accesskeymc idp ldap accesskey 取代。 该命令及其子命令将在未来的 MinIO 客户端版本中弃用。

9 - mc ilm export

说明

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

mc ilm export 已被 mc ilm rule export 替代。

语法

mc ilm export 命令用于导出 MinIO 存储桶的对象生命周期管理配置。

mc ilm export 命令默认输出到 STDOUT。你可以将内容输出到 .json 文件中,以便归档或通过 mc ilm import 导入使用。

以下命令将 myminio 部署上 mydata 存储桶的生命周期管理配置 导出到 mydata-lifecycle-config.json 文件:

mc ilm export myminio/mydata > mydata-lifecycle-config.json

该命令的语法如下:

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

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

参数

ALIAS

mc-cmd

必需 MinIO 部署的 alias 和存储桶完整路径,用于导出该 存储桶的对象生命周期管理规则。例如:

mc ilm export myminio/mydata > bucket-lifecycle.json

全局标志

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

示例

导出存储桶生命周期管理配置

以下命令将存储桶生命周期管理配置导出到 bucket-lifecycle.json 文件:

mc ilm export myminio/mybucket > bucket-lifecycle.json
mc ilm export ALIAS > file.json
  • ALIAS 替换为 MinIO 部署的 alias 和需要导出 对象生命周期管理规则的存储桶:

    myminio/mydata

  • file.json 替换为用于导出生命周期管理规则的文件名。

行为

S3 兼容性

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

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

10 - mc quota set

说明

变更: RELEASE.2022-12-13T00-23-28Z

mc quota set 替代了 mc admin bucket quota --hard

说明

变更: RELEASE.2024-07-31T15-58-33Z

mc quota set 已弃用。

说明

mc quota set 为存储桶分配硬配额限制,超过该限制后 MinIO 不再允许写入。

计量单位

mc quota set --size 标志接受以下 不区分大小写 的后缀,用于表示指定大小值的单位:

后缀 单位大小
k KB(Kilobyte,1000 Bytes)
m MB(Megabyte,1000 Kilobytes)
g GB(Gigabyte,1000 Megabytes)
t TB(Terabyte,1000 Gigabytes)
ki or kib KiB(Kibibyte,1024 Bites)
mi or mib MiB(Mebibyte,1024 Kibibytes)
gi or gib GiB(Gibibyte,1024 Mebibytes)
ti or tib TiB(Tebibyte,1024 Gibibytes)

如果省略后缀,则默认使用 bytes

示例

为存储桶配置硬配额

mc quota set--size 标志配合使用,可为存储桶指定硬配额。 硬配额可防止存储桶大小增长到超出指定限制。

mc quota set TARGET/BUCKET --size LIMIT
  • TARGET 替换为已配置 MinIO 部署的 alias。 将 BUCKET 替换为要设置硬配额的存储桶名称。
  • LIMIT 替换为存储桶可增长到的最大大小(整数),并可按需附加后缀。 例如,要设置 10 Terabytes 的硬限制,请指定 10t

语法

mc quota set 的语法如下:

mc quota set TARGET --size LIMIT

mc quota set 支持以下参数:

TARGET

mc-cmd

Required

要为其创建配额的存储桶完整路径。 在路径前缀中指定 MinIO 部署的 alias。 例如:

mc quota set play/mybucket --size 10Gi

--size

mc-cmd

Required

设置存储桶存储大小的最大限制。 MinIO 服务器会拒绝任何内容将超出存储桶已配置配额的传入 PUT 请求。

例如,若硬限制为 10G,当存储桶达到 10 gigabytes 时,将无法再添加任何对象。

全局标志

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

S3 兼容性

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

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

11 - Operator Helm 图表

已归档的 MinIO Operator 项目曾发布 Operator ChartTenant Chart。本页记录其最终 v7.1.1 Operator Chart。

本页说明 MinIO Operator 的 values.yaml 图表。 有关 MinIO 租户图表的文档,请参见 租户 Helm Charts

警告

上游 MinIO Operator 仓库已于 2026 年 3 月 20 日归档。请将这些配置视为冻结的 v7.1.1 参考快照,而不是上游仍在维护或提供支持的依据。

MinIO Operator 图表

operator

Root key for Operator Helm Chart

env

An array of environment variables to pass to the Operator deployment. Pass an empty array to start Operator with defaults.

For example:

env:
- name: CLUSTER_DOMAIN
  value: "cluster.domain"
- name: WATCHED_NAMESPACE
  value: ""
- name: MINIO_OPERATOR_RUNTIME
  value: "OpenShift"

See Operator environment variables for a list of all supported values.

image

Specify the Operator container image to use for the deployment. image.tag For example, the following sets the image to the quay.io/minio/operator repo and the v7.1.1 tag. The container pulls the image if not already present:

image:
  repository: quay.io/minio/operator
  tag: v7.1.1
  pullPolicy: IfNotPresent

The chart also supports specifying an image based on digest value:

image:
  repository: quay.io/minio/operator@sha256
  digest: 28c80b379c75242c6fe793dfbf212f43c602140a0de5ebe3d9c2a3a7b9f9f983
  pullPolicy: IfNotPresent

sidecarImage

Specify the sidecar container image to deploy on tenant pods for init container and sidecar. Only need to change this if want to use a different version that the default, or want to set a custom registry. sidecarImage.tag For example, the following sets the image to the quay.io/minio/operator-sidecar repo and the v7.1.1 tag. The container pulls the image if not already present:

sidecarImage:
  repository: quay.io/minio/operator-sidecar
  tag: v7.1.1
  pullPolicy: IfNotPresent

The chart also supports specifying an image based on digest value:

sidecarImage:
  repository: quay.io/minio/operator-sidecar@sha256
  digest: a11947a230b80fb1b0bffa97173147a505d4f1207958f722e348d11ab9e972c1
  pullPolicy: IfNotPresent

imagePullSecrets

An array of Kubernetes secrets to use for pulling images from a private image.repository. Only one array element is supported at this time.

runtimeClassName

The name of a custom Container Runtime to use for the Operator pods.

initContainers

An array of initContainers to start up before the Operator pods. Exercise care as initContainer failures prevent Operator pods from starting. Pass an empty array to start the Operator normally.

replicaCount

The number of Operator pods to deploy. Higher values increase availability in the event of worker node failures.

The cluster must have sufficient number of available worker nodes to fulfill the request. Operator pods deploy with pod anti-affinity by default, preventing Kubernetes from scheduling multiple pods onto a single Worker node.

securityContext

The Kubernetes SecurityContext to use for deploying Operator resources.

You may need to modify these values to meet your cluster’s security and access settings.

containerSecurityContext

The Kubernetes SecurityContext to use for deploying Operator containers. You may need to modify these values to meet your cluster’s security and access settings.

volumes

An array of Volumes which the Operator can mount to pods.

The volumes must exist and be accessible to the Operator pods.

volumeMounts

An array of volume mount points associated to each Operator container.

Specify each item in the array as follows:

volumeMounts:
- name: volumename
  mountPath: /path/to/mount

The name field must correspond to an entry in the volumes array.

nodeSelector

Any Node Selectors to apply to Operator pods.

The Kubernetes scheduler uses these selectors to determine which worker nodes onto which it can deploy Operator pods.

If no worker nodes match the specified selectors, the Operator deployment will fail.

priorityClassName

The Pod Priority to assign to Operator pods.

affinity

The affinity or anti-affinity settings to apply to Operator pods.

These settings determine the distribution of pods across worker nodes and can help prevent or allow colocating pods onto the same worker nodes.

tolerations

An array of Toleration labels to associate to Operator pods.

These settings determine the distribution of pods across worker nodes.

topologySpreadConstraints

An array of Topology Spread Constraints to associate to Operator pods.

These settings determine the distribution of pods across worker nodes.

resources

The Requests or Limits for resources to associate to Operator pods.

These settings can control the minimum and maximum resources requested for each pod. If no worker nodes can meet the specified requests, the Operator may fail to deploy.

###
# Root key for Operator Helm Chart
operator:
  ###
  # An array of environment variables to pass to the Operator deployment.
  # Pass an empty array to start Operator with defaults.
  #
  # For example:
  #
  # .. code-block:: yaml
  #
  #    env:
  #    - name: CLUSTER_DOMAIN
  #      value: "cluster.domain"
  #    - name: WATCHED_NAMESPACE
  #      value: ""
  #    - name: MINIO_OPERATOR_RUNTIME
  #      value: "OpenShift"
  #
  # See `Operator environment variables <https://github.com/minio/operator/blob/v7.1.1/docs/env-variables.md>`__ for a list of all supported values.
  env:
    - name: OPERATOR_STS_ENABLED
      value: "on"
  # An array of additional annotations to be applied to the operator service account
  serviceAccountAnnotations: []
  # additional labels to be applied to operator resources
  additionalLabels: {}
  ###
  # Specify the Operator container image to use for the deployment.
  # ``image.tag``
  # For example, the following sets the image to the ``quay.io/minio/operator`` repo and the v7.1.1 tag.
  # The container pulls the image if not already present:
  #
  # .. code-block:: yaml
  #
  #    image:
  #      repository: quay.io/minio/operator
  #      tag: v7.1.1
  #      pullPolicy: IfNotPresent
  #
  # The chart also supports specifying an image based on digest value:
  #
  # .. code-block:: yaml
  #
  #    image:
  #      repository: quay.io/minio/operator@sha256
  #      digest: 28c80b379c75242c6fe793dfbf212f43c602140a0de5ebe3d9c2a3a7b9f9f983
  #      pullPolicy: IfNotPresent
  #
  image:
    repository: quay.io/minio/operator
    tag: v7.1.1
    pullPolicy: IfNotPresent
  ###
  # Specify the sidecar container image to deploy on tenant pods for init container and sidecar.
  # Only need to change this if want to use a different version that the default, or want to set a custom registry.
  # ``sidecarImage.tag``
  # For example, the following sets the image to the ``quay.io/minio/operator-sidecar`` repo and the v7.1.1 tag.
  # The container pulls the image if not already present:
  #
  # .. code-block:: yaml
  #
  #    sidecarImage:
  #      repository: quay.io/minio/operator-sidecar
  #      tag: v7.1.1
  #      pullPolicy: IfNotPresent
  #
  # The chart also supports specifying an image based on digest value:
  #
  # .. code-block:: yaml
  #
  #    sidecarImage:
  #      repository: quay.io/minio/operator-sidecar@sha256
  #      digest: a11947a230b80fb1b0bffa97173147a505d4f1207958f722e348d11ab9e972c1
  #      pullPolicy: IfNotPresent
  #
  sidecarImage: {}
  ###
  #
  # An array of Kubernetes secrets to use for pulling images from a private ``image.repository``.
  # Only one array element is supported at this time.
  imagePullSecrets: [ ]
  ###
  #
  # The name of a custom `Container Runtime <https://kubernetes.io/docs/concepts/containers/runtime-class/>`__ to use for the Operator pods.
  runtimeClassName: ~
  ###
  # An array of `initContainers <https://kubernetes.io/docs/concepts/workloads/pods/init-containers/>`__ to start up before the Operator pods.
  # Exercise care as ``initContainer`` failures prevent Operator pods from starting.
  # Pass an empty array to start the Operator normally.
  initContainers: [ ]
  ###
  # The number of Operator pods to deploy.
  # Higher values increase availability in the event of worker node failures.
  #
  # The cluster must have sufficient number of available worker nodes to fulfill the request.
  # Operator pods deploy with pod anti-affinity by default, preventing Kubernetes from scheduling multiple pods onto a single Worker node.
  replicaCount: 2
  ###
  # The Kubernetes `SecurityContext <https://kubernetes.io/docs/tasks/configure-pod-container/security-context/>`__ to use for deploying Operator resources.
  #
  # You may need to modify these values to meet your cluster's security and access settings.
  securityContext:
    runAsUser: 1000
    runAsGroup: 1000
    runAsNonRoot: true
    fsGroup: 1000
  ###
  # The Kubernetes `SecurityContext <https://kubernetes.io/docs/tasks/configure-pod-container/security-context/>`__ to use for deploying Operator containers.
  # You may need to modify these values to meet your cluster's security and access settings.
  containerSecurityContext:
    runAsUser: 1000
    runAsGroup: 1000
    runAsNonRoot: true
    allowPrivilegeEscalation: false
    capabilities:
      drop:
        - ALL
    seccompProfile:
      type: RuntimeDefault
  ###
  # An array of `Volumes <https://kubernetes.io/docs/concepts/storage/volumes/>`__ which the Operator can mount to pods.
  #
  # The volumes must exist *and* be accessible to the Operator pods.
  volumes: [ ]
  ###
  # An array of volume mount points associated to each Operator container.
  #
  # Specify each item in the array as follows:
  #
  # .. code-block:: yaml
  #
  #    volumeMounts:
  #    - name: volumename
  #      mountPath: /path/to/mount
  #
  # The ``name`` field must correspond to an entry in the ``volumes`` array.
  volumeMounts: [ ]
  ###
  # Any `Node Selectors <https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/>`__ to apply to Operator pods.
  #
  # The Kubernetes scheduler uses these selectors to determine which worker nodes onto which it can deploy Operator pods.
  #
  # If no worker nodes match the specified selectors, the Operator deployment will fail.
  nodeSelector: { }
  ###
  #
  # The `Pod Priority <https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption/>`__ to assign to Operator pods.
  priorityClassName: ""
  ###
  #
  # The `affinity <https://kubernetes.io/docs/tasks/configure-pod-container/assign-pods-nodes-using-node-affinity/>`__ or anti-affinity settings to apply to Operator pods.
  #
  # These settings determine the distribution of pods across worker nodes and can help prevent or allow colocating pods onto the same worker nodes.
  affinity:
    podAntiAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        - labelSelector:
            matchExpressions:
              - key: name
                operator: In
                values:
                  - minio-operator
          topologyKey: kubernetes.io/hostname
  ###
  #
  # An array of `Toleration labels <https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/>`__ to associate to Operator pods.
  #
  # These settings determine the distribution of pods across worker nodes.
  tolerations: [ ]
  ###
  #
  # An array of `Topology Spread Constraints <https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/>`__ to associate to Operator pods.
  #
  # These settings determine the distribution of pods across worker nodes.
  topologySpreadConstraints: [ ]
  ###
  #
  # The `Requests or Limits <https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/>`__ for resources to associate to Operator pods.
  #
  # These settings can control the minimum and maximum resources requested for each pod.
  # If no worker nodes can meet the specified requests, the Operator may fail to deploy.
  resources:
    requests:
      cpu: 200m
      memory: 256Mi
      ephemeral-storage: 500Mi

12 - Silo 服务端(minio)

Silo 服务端

minio server 命令用于启动 Silo 服务端进程。可执行文件与子命令名称 minio server 属于兼容契约:

minio server /mnt/disk{1...4}

有关在裸金属环境中部署 minio server 的示例,请参阅 安装与管理

有关在 Kubernetes 环境中部署 minio server 的示例,请参阅 部署 Silo Tenant

语法

启动 minio server 进程。

该命令语法如下:

minio server [FLAGS] HOSTNAME/DIRECTORIES [HOSTNAME/DIRECTORIES..]

该命令接受以下参数:

HOSTNAME

mc-cmd

minio server 进程的主机名。

对于单机部署,此字段为 可选。 仅使用 DIRECTORIES 参数即可启动一个单机 server 进程。

对于分布式部署,请指定部署中每个 minio server 的主机名。 这一组 minio server 进程共同表示一个 服务器池

HOSTNAME 支持扩展记法 {x...y},用于表示按顺序排列的一组主机名。Silo 要求 使用连续主机名,以识别该集合中的每个 minio server 进程。

例如,https://minio{1...4}.example.net 会扩展为:

  • https://minio1.example.net
  • https://minio2.example.net
  • https://minio3.example.net
  • https://minio4.example.net

你必须在 服务器池 中每台主机上,使用 相同HOSTNAMEDIRECTORIES 组合来运行 minio server 命令。

每增加一个 HOSTNAME/DIRECTORIES 对,就表示增加一个 Server Set,用于 Silo 部署的水平扩展。有关服务器池的更多信息,请参阅 服务器池

DIRECTORIES

mc-cmd

Required

minio server 进程用作存储后端的目录或驱动器。

DIRECTORIES 支持扩展记法 {x...y},用于表示按顺序排列的一组文件夹或驱动器。例如,/mnt/disk{1...4} 会扩展为:

  • /mnt/disk1
  • /mnt/disk2
  • /mnt/disk3
  • /mnt/disk4

首次启动 minio 进程时,DIRECTORIES 路径 必须 为空。

minio server 进程至少需要 4 个驱动器或目录才能启用 erasure coding

警告

重要

Silo 建议使用本地直连驱动器,即 DIRECTORIES 路径指向主机上的各个驱动器。除非已验证完整技术栈,应避免把网络附加存储用作主对象数据存储,因为其网络延迟和故障语义与本地直连存储不同。

在开发或评估场景中,你可以在单个物理卷上指定多个逻辑目录或分区,以便在部署中启用纠删码。

对于生产环境,不要 把同一物理磁盘上的多个逻辑目录或分区当作独立故障域。表面上的驱动器数量不能提供物理磁盘冗余。

--address

mc-cmd

Optional

minio server 进程绑定到特定网络地址和端口号。 将地址和端口指定为 ADDRESS:PORT,其中 ADDRESS 是 IP 地址或主机名,PORT 是主机系统上有效且开放的端口。 MinIO 同时支持 IPv4 和 IPv6 寻址,前提是指定地址可路由且可解析。

若要为主机上配置的所有 IP 地址或主机名修改端口号,仅指定 :PORT 即可,其中 PORT 是主机上有效且开放的端口。

说明

变更: RELEASE.2023-01-02T09-40-09Z

你可以通过配置 hosts 文件,让 MinIO 仅监听特定 IP。 例如,如果机器的 /etc/hosts 文件包含以下内容:

127.0.1.1       minioip
127.0.1.2       minioip

类似下面的命令会在两个已配置 IP 地址的 9000 端口上监听 API 调用。

minio server --address "minioip:9000" ~/miniodirectory

若省略该参数,minio 会绑定到主机上所有已配置 IPv4 地址、IPv6 地址和主机名的 9000 端口。

--console-address

mc-cmd

Optional

为内置 MinIO Console 指定静态端口。

省略时,MinIO 会在 server 启动时生成动态端口。 MinIO server 会将该端口输出到系统日志。

--ftp

mc-cmd

Optional

启用并配置 File Transfer Protocol(FTP)或 File Transfer Protocol over SSL/TLS(FTPS)服务器。 多次使用该 flag 可按键值对指定地址端口、被动端口范围或 TLS 证书与密钥。

有效键如下:

  • address,用于指定服务器使用的单个端口,通常为 8021

  • (Optional) passive-port-range,用于限制服务器可用于传输数据的端口范围,例如防火墙规则较严格、限制 FTP 服务器可为连接请求端口时

  • (Optional) tls-private-key,用于指定用户私钥路径,以便通过 TLS 访问 MinIO 部署

    tls-public-cert 配合使用。

  • (Optional) tls-public-cert,用于指定证书路径,以便通过 TLS 访问 MinIO 部署

    tls-private-key 配合使用。

对于已启用 TLS 的 MinIO 部署,省略 tls-private-keytls-public-key,可让 MinIO 使用部署默认 TLS 密钥。 更多信息请参阅 网络加密(TLS)。 仅当你要使用与 MinIO 默认值不同的一组 TLS 证书和密钥时,才需要指定证书与私钥(例如使用不同域名)。

例如:

minio server http://server{1...4}/disk{1...4} \
--ftp="address=:8021"                         \
--ftp="passive-port-range=30000-40000"        \
--ftp="tls-private-key=path/to/private.key"   \
--ftp="tls-public-cert=path/to/public.crt"    \
...
--sftp

mc-cmd

Optional

启用并配置 SSH File Transfer Protocol(SFTP)服务器。 可多次使用以指定所需的每个键值对。

下表列出有效键。

说明

有效值

address

用于连接到 SFTP 的端口。

任意有效端口号,通常为 8022

ssh-private-key

用户私钥文件路径。

用于密钥文件的绝对路径,或相对于当前位置的相对路径。

trusted-user-ca-key

指定一个文件,其中包含受信任证书颁发机构的公钥,该机构可对用于身份验证的用户证书签名。 文件必须包含 user principals list,且列表必须包含可使用该密钥进行身份验证的用户。

用户受信任证书颁发机构公钥文件的绝对路径,或相对于当前位置的相对路径。

pub-key-algos

以逗号分隔的公钥算法列表。

ssh-ed25519
sk-ssh-ed25519@openssh.com
sk-ecdsa-sha2-nistp256@openssh.com
ecdsa-sha2-nistp256
ecdsa-sha2-nistp384
ecdsa-sha2-nistp521
rsa-sha2-256
rsa-sha2-512
ssh-rsa
ssh-dss

kex-algos

按优先级顺序排列的、以逗号分隔的密钥交换算法列表。

curve25519-sha256
curve25519-sha256@libssh.org
ecdh-sha2-nistp256
ecdh-sha2-nistp384
ecdh-sha2-nistp521
diffie-hellman-group14-sha256
diffie-hellman-group16-sha512
diffie-hellman-group14-sha1
diffie-hellman-group1-sha1

cipher-algos

以逗号分隔的支持的加密算法列表

aes128-ctr
aes192-ctr
aes256-ctr
aes128-gcm@openssh.com
aes256-gcm@openssh.com
chacha20-poly1305@openssh.com
arcfour256
arcfour128
arcfour
aes128-cbc
3des-cbc

mac-algos

按优先级顺序排列的、以逗号分隔的 MAC 算法列表。 基于 RFC 4253 section 6.4,但 hmac-md5 变体除外(已终止生命周期)。

hmac-sha2-256-etm@openssh.com
hmac-sha2-512-etm@openssh.com
hmac-sha2-256
hmac-sha2-512
hmac-sha1
hmac-sha1-96

disable-password-auth

禁用密码认证。

true

例如:

minio server http://server{1...4}/disk{1...4}                                 \
--sftp="address=:8022" --sftp="ssh-private-key=/home/miniouser/.ssh/id_rsa"   \
--sftp="kex-algos=diffie-hellman-group14-sha256,curve25519-sha256@libssh.org" \
...
--certs-dir, -S

mc-cmd

Optional

指定包含证书的文件夹路径,minio 进程使用该路径中的证书配置 TLS/SSL 连接。

指定文件夹的内容必须符合 default path structure。 例如,--certs-dir /etc/minio 的路径内容应类似如下:

/etc/minio
  private.key
  public.crt
  domain.tld/
    private.key
    public.crt
  CAs/
    full-chain-ca.crt

省略时使用默认目录路径:

  • Linux/macOS: ${HOME}/.minio/certs
  • Windows: %%USERPROFILE%%\.minio\certs.

有关 TLS/SSL 连接的更多信息,请参阅 网络加密(TLS)

警告

重要

MinIO Server RELEASE.2023-12-09T18-17-51Z 移除了已弃用参数 --config-dir | -C。 使用该 flag 的部署可能会在未启用 TLS 的情况下启动。 请将这些参数替换为 --certs-dir | -S 并重启,以重新启用 TLS。

--quiet

mc-cmd

Optional

禁用启动信息输出。

--anonymous

mc-cmd

Optional

在日志中隐藏敏感信息。

--json

mc-cmd

Optional

JSON 格式输出 server 日志和启动信息。

说明

说明

你可以通过在 MINIO_OPTS 环境变量中设置上述任意 minio 参数来定义它们。 该变量的值是一个字符串,包含你希望在启动 MinIO Server 时设置的上述参数及其对应取值。

设置

你可以通过定义额外的 Configuration ValuesEnvironment Variables,对 MinIO 服务端进程执行其他自定义配置。

许多配置值和环境变量定义的是同一个值。 如果同时设置配置值及其对应环境变量,MinIO 使用环境变量中的值。

12.1 - 设置概览

minio server 进程将其配置存储在存储后端 directory 中。

MinIO 设置

MinIO 设置定义 MinIO server 进程的运行时行为。

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

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

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

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

警告

重要

每个配置项都会控制 MinIO 的基础行为和功能。 MinIO 强烈建议 先在 DEV 或 QA 等较低级别环境中测试配置变更,再应用到生产环境。

其他可用于自定义的设置包括:

12.1.1 - 核心设置

本页介绍用于控制 MinIO 进程核心行为的设置。

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

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

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

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

警告

重要

每个配置项都会控制 MinIO 的基础行为和功能。 MinIO 强烈建议 先在 DEV 或 QA 等较低级别环境中测试配置变更,再应用到生产环境。

MinIO Server CLI 选项

MINIO_OPTS

envvar

此变量没有对应的配置项,因为这些设置在服务器启动时生效。

可选

设置一个 参数 字符串,在启动 MinIO Server 时使用。

对于采用推荐 MinIO systemd 服务的类 Unix 系统,请使用 /etc/default/minio 文件并创建环境变量 MINIO_OPTS,用于指定要附加到 minio systemd 进程的参数:

# Editing /etc/default/minio

MINIO_OPTS=' --console-address=":9001" --ftp="address=:8021" --ftp="passive-port-range=30000-40000" '

对于在命令行运行 minio 的系统,MINIO_OPTS 是可选项。 如需使用,请按标准 shell 语义声明该环境变量,然后在启动 MinIO Server 时引用该环境变量:

export MINIO_OPTS=' --console-address=":9001" --ftp="address=:8021" --ftp="passive-port-range=30000-40000" '

minio server $MINIO_OPTS ...

# The above is equivalent to running the following:
# minio server --console-address=":9001" \
#              --ftp="address=:8021"     \
#              --ftp="passive-port-range=30000-40000"
警告

重要

minio server 命令不会直接读取 $MINIO_OPTS。 该变量仅在按上述方式使用时才会生效。

存储卷

MINIO_VOLUMES

envvar

minio server 进程用作存储后端的目录或磁盘。

在功能上等价于设置 minio server DIRECTORIES。 在通过环境文件配置 MinIO 运行时使用此值。

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

环境变量文件路径

MINIO_CONFIG_ENV_FILE

envvar

指定 MinIO server 进程用于加载环境变量的文件完整路径。

对于由 systemd 管理的文件,将该值设置为环境文件路径(/etc/default/minio),以便在使用 mc admin service restart 重启部署时,指示 MinIO 重新加载该文件中的变更。

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

过期处理工作线程

MINIO_ILM_EXPIRY_WORKERS

envvar

指定用于处理按 ILM 过期规则配置对象过期任务的工作线程数。 未设置时,MinIO 默认最多使用可用处理器核心数的一半。

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

域名

MINIO_DOMAIN

envvar

为 MinIO 部署启用 Virtual Host 风格请求。 将该值设置为完全限定域名(FQDN),使 MinIO 能够接受传入的虚拟主机请求。

省略此设置时,MinIO 仅接受默认的 path-style 请求。

例如,某个 MinIO 部署分配的 FQDN 为 minio.example.net

  • 使用 path-style 访问时,应用可通过完整路径 minio.example.net/mybucket 访问存储桶。
  • 使用 virtual-host 访问时,应用可通过虚拟主机 mybucket.minio.example.net/ 访问存储桶。
警告

重要

如果配置了 MINIO_DOMAIN,你 必须 将指定 FQDN 的所有子域名视为专用于存储桶名称。 任何与这些域名冲突的 MinIO 服务(例如复制目标)都可能因为冲突而表现出意外或非预期行为。

例如,若设置 MINIO_DOMAIN=minio.example.net,则 不能minio.example.net 的任何子域名(即 *.minio.example.net 形式)分配给任何 MinIO 服务或目标。 这包括用于 bucketbatchsite replication 的主机名。

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

扫描器速度

MINIO_SCANNER_SPEED

envvar

scanner speed

mc-conf

用于在平衡 MinIO 读写性能与扫描进程时,管理 scanner 的最大等待周期。

MinIO 使用 scanner 执行 存储桶复制站点复制生命周期管理自愈 任务。

有效值包括:

fastest

移除扫描器在读/写延迟上的等待时间,使扫描器以最高速度和 IOPS 消耗运行。 此设置可能导致读取和写入性能下降。

fast

将扫描器在读/写延迟上的等待时间设置为较短, 使扫描器以更高速度和 IOPS 消耗运行。 此设置可能导致读取和写入性能下降。

default

将扫描器在读/写延迟上的等待时间设置为中等, 使扫描器以平衡的速度和 IOPS 消耗运行。 此设置旨在在保持读写性能的同时允许扫描器持续工作。

slow

将扫描器在读/写延迟上的等待时间设置为中等, 此时扫描器以较低速度和 IOPS 消耗运行。 该设置在降低扫描器性能的同时,可提供更好的读写性能。

可能影响依赖扫描器的功能,例如生命周期管理和复制。

slowest

将扫描器在读/写延迟上的等待时间设置为较长, 此时扫描器以显著更低的速度和 IOPS 消耗运行。 该设置优先保障读写操作,但可能以牺牲扫描器操作为代价。

可能影响依赖扫描器的功能,例如生命周期管理和复制。

批量复制

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

数据压缩

以下部分记录用于为对象启用数据压缩的设置。 有关如何使用这些配置设置的教程,请参见 数据压缩

本节中的所有设置都归属于以下顶层键:

compression

mc-conf

启用压缩

MINIO_COMPRESSION_ENABLE

envvar

compression enable

mc-conf

可选

设置为 on 以对新对象启用数据压缩。 默认为 off

启用或禁用数据压缩不会更改现有对象。

允许加密

MINIO_COMPRESSION_ALLOW_ENCRYPTION

envvar

compression allow_encryption

mc-conf

可选

设置为 on 以在压缩后对对象进行加密。 默认为 off

说明

对压缩对象加密可能会削弱安全性

MinIO 强烈不建议对压缩对象进行加密。 如果你需要加密,请仔细评估可能泄露加密对象内容信息的风险。

压缩扩展名

MINIO_COMPRESSION_EXTENSIONS

envvar

compression extensions

mc-conf

可选

要压缩的文件扩展名列表,以逗号分隔。 设置新的扩展名列表会替换先前已配置的列表。 默认为 ".txt, .log, .csv, .json, .tar, .xml, .bin"

说明

变更: RELEASE.2024-03-15T01-07-19Z

可指定 "*" 以指示 MinIO 压缩所有受支持的文件类型。

即使在此参数中显式指定,MinIO 也不支持压缩 Excluded File Types 列表中的文件类型。

压缩 MIME 类型

MINIO_COMPRESSION_MIME_TYPES

envvar

compression mime_types

mc-conf

可选

要压缩的 MIME 类型列表,以逗号分隔。 设置新的类型列表会替换先前已配置的列表。 默认为 "text/*, application/json, application/xml, binary/octet-stream"

说明

默认排除文件

某些类型的文件无法显著减小体积。 MinIO 不会 压缩这些文件,即使它们在 mime_types 参数中被指定。 详见 Excluded types

注释

此设置没有环境变量选项。 请改用配置项。

compression comment

envvar

可选

指定一个与数据压缩配置关联的注释。

纠删码条带大小

MINIO_ERASURE_SET_DRIVE_COUNT

envvar

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

可选

应用于指定 服务器池 中所有驱动器的 erasure set size

如果设置此值,你 必须 在初始化集群 之前 完成设置。 集群初始化后,所选条带大小为 不可变,并会影响后续添加到集群中的所有 服务器池。

MinIO SUBNET 用户应先登录并提交 issue,讨论条带大小设置后再在任何环境中实施。

注意

警告

除非 MinIO 工程团队明确指导,否则 不要 更改条带大小设置。

条带大小变更会对部署功能、可用性、性能和行为产生重大影响。 MinIO 的条带选择算法已为大多数工作负载设置了适当默认值。 偏离该默认值来调整条带大小并不常见,通常也没有必要或不被建议。

最大对象版本数

MINIO_API_OBJECT_MAX_VERSIONS

envvar

api object_max_versions

mc-conf

可选

定义每个对象允许的默认最大版本数。

默认情况下,MinIO 允许每个对象的版本数最高达到 Int64 的最大值,即超过 9.2 quintillion。

说明

说明

RELEASE.2023-08-04T17-40-21ZRELEASE.2024-03-26T22-10-45Z 之间的 MinIO 版本,默认上限为 10,000 个对象版本。 可使用此设置将该上限覆盖为其他值。

为对象设置任意高的版本数可能导致某些操作(如 LIST)性能下降。 在使用低成本硬件或机械硬盘(HDD)的系统上,这一点尤为明显。 对于每个对象会生成数千个或更多版本的应用或工作负载,可能需要进行设计或架构评审,以缓解潜在的性能下降。

将上限设置为不超过 100,通常可满足大多数常见使用场景。

客户端源地址信任

MINIO_API_TRUSTED_PROXIES

envvar

指定哪些对端有资格告诉服务器"请求来自哪里"。

默认情况下,MinIO 会采信来自任何对端的 X-Forwarded-ForX-Real-IP 与 RFC 7239 Forwarded 头,因此一个能直接连到 API 端口的客户端可以自行设定它表面上的源地址。该地址会流入 aws:SourceIp 策略条件、审计日志的 remotehost 字段,以及事件通知的 Host 字段。

将其设为以逗号分隔的地址或 CIDR 列表,则 采信名单内对端送来的转发头。此时转发链会从右向左、跳过名单内的跳数来解析,这也会丢弃"追加型代理"在链首留下的、由客户端自己提供的那一项——nginx 默认的 $proxy_add_x_forwarded_for 写法与 HAProxy 追加的第二行头都会产生这一项。

将其设为 none,则完全不采信任何转发头,始终使用对端地址。

说明

说明

不设置是默认值,保持历史行为,因此在你主动配置之前该设置完全惰性。

要列出 代理本身,而不是它们所在的网段。名单内的条目在遍历转发链时会被跳过,因此一个同时覆盖了客户端的网段,等于让那些客户端可以伪造。多节点部署必须把自己各节点的地址也列进去,因为 MinIO 会在节点之间转发部分请求。回环地址始终被视为可信对端,以便 FTP 与 SFTP 能正确归属其会话。取值格式错误、或没有指向任何代理,都会阻止启动。

如果你使用 IpAddressNotIpAddress 策略条件,那么在此设置指明你的代理之前(或部署本身除代理外不可达之前),这些条件是无法强制执行的。

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

旧版存储桶资源匹配

MINIO_API_LEGACY_BUCKET_RESOURCE_MATCH

envvar

设为 on 可恢复桶级请求在 IAM 策略资源匹配上的历史行为。

默认情况下,有十二个桶级写操作不再能通过 arn:aws:s3:::mybucket/* 这样的对象级资源模式获得授权。动作清单以及正确授予它们的策略改法,见存储桶资源与对象资源

设为 on 会回到"把桶级请求与字符串 mybucket/ 相匹配"的做法,而对象模式同样命中该字符串。该值在启动时读取一次,仅用作更新存量策略期间的临时手段。

警告

这会恢复一处过度授予

正是这种历史匹配方式,让一个只持有 arn:aws:s3:::mybucket/*s3:* 的主体能够改写桶策略(包括把桶变为公开),或者直接删除该桶。这个开关是全有全无的:为了一个动作打开它,会把十二个动作一并放开。

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

12.1.2 - Root 访问设置

本页介绍用于控制 MinIO 进程 root(超级用户)访问权限的设置。 root 用户具有完整访问权限,可在 MinIO 部署上执行操作。

即使使用 MinIO Key Encryption Service 或其他密钥管理工具,也必须配置 Root User 和 Root Password。

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

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

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

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

警告

重要

每个配置项都会控制 MinIO 的基础行为和功能。 MinIO 强烈建议 先在 DEV 或 QA 等较低级别环境中测试配置变更,再应用到生产环境。

Root User

MINIO_ROOT_USER

envvar

root 用户的访问密钥。

注意

警告

如果未设置 MINIO_ROOT_USERminio 默认使用 minioadmin

在生产环境中 绝不要 使用默认凭证。 MinIO 强烈建议在所有环境中为 MINIO_ROOT_USER 指定唯一、足够长且随机的值。

此设置没有对应的配置变量。 请改用环境变量。

Root Password

MINIO_ROOT_PASSWORD

envvar

root 用户的密钥。

注意

警告

如果未设置 MINIO_ROOT_PASSWORDminio 默认使用 minioadmin

在生产环境中 绝不要 使用默认凭证。 MinIO 强烈建议在所有环境中为 MINIO_ROOT_PASSWORD 指定唯一、足够长且随机的值。

此设置没有对应的配置变量。 请改用环境变量。

Root 访问

MINIO_API_ROOT_ACCESS

envvar

api root-access

mc-conf

说明

新增: MinIO

Server RELEASE.2023-05-04T21-44-30Z

设置为 on 可启用 root 用户账号,设置为 off 可禁用该账号。 禁用 root 服务账户时,也会禁用所有与 root 关联的服务账户,但用于站点复制的账号除外。 默认值为 on

警告

重要

如果通过此设置禁用 root API 访问,你 仍然必须 为内部使用设置 root user 和 root password。

在禁用 root 账号之前,请确保至少存在一个其他管理员用户,例如具备 consoleAdmin 策略的用户。 如果没有其他管理员用户,禁用 root 账号会导致该部署的管理访问被锁定。

你可以使用此变量临时覆盖配置项,重新启用对部署的 root 访问。

如果发生意外锁定,要进行重置,请将 MINIO_API_ROOT_ACCESS 设为 on 以覆盖此设置,并临时重新启用 root 账号。 随后你可以将此设置改为 on 完成必要的用户/策略调整,以确保可通过其他非 root 账号进行正常管理访问。

唯一 Root 凭证

说明

新增: Server

RELEASE.2024-03-03T17-50-39Z

如果同时满足以下所有条件,MinIO 会自动生成唯一的 root 凭证:

当这些条件在启动时满足后, MinIO 会使用 KMS 和 hash-based message authentication code (HMAC) 为该部署生成唯一的 root 凭证。

如果 MinIO 生成了此类凭证, 则用于生成这些凭证的密钥 必须 保持不变,并且必须持续存在。 该部署中的所有数据都使用此密钥加密!

如果要轮换已生成的 root 凭证, 请先在 KMS 中生成新密钥,然后将 MINIO_KMS_KES_KEY_NAME 的值更新为该新密钥。

12.1.3 - 纠删码设置

本页介绍用于配置写入 MinIO 集群对象时所使用 纠删码 校验 的相关设置。 这会影响 MinIO 如何使用驱动器空间,以及 MinIO 如何在驱动器丢失或类似问题发生时恢复已存储对象。

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

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

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

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

警告

重要

每个配置项都会控制 MinIO 的基础行为和功能。 MinIO 强烈建议 先在 DEV 或 QA 等较低级别环境中测试配置变更,再应用到生产环境。

标准存储类

说明

说明

MinIO Storage ClassesAWS Storage Classes 不同。

AWS Storage Classes 指将给定对象存储到的特定存储层级,例如 hotglacier 存储。 MinIO Storage Classes 会影响所使用的纠删码校验设置,并与对象的 可用性与韧性 相关。

如需在不同类型存储之间分层(例如用于成本管理),请参见 对象迁移(”Tiering”)

MINIO_STORAGE_CLASS_STANDARD

envvar

storage_class standard

mc-conf

该部署的 parity level。 MinIO 会使用该校验值对采用默认 STANDARD 存储类写入的对象进行分片。

MinIO 会参考请求元数据中的 x-amz-storage-class 头,以确定应为对象分配哪个存储类。 设置该头的具体语法或方式取决于与 MinIO 服务器交互时所使用的方法。

请使用 EC:M 记法指定该值,其中 M 表示要为对象创建的校验块数量。

下表列出了基于部署中初始服务器池 erasure set size 的默认值:

纠删集合大小 默认校验 (EC:N)
1 EC:0
2-3 EC:1
4-5 EC:2
6 - 7 EC:3
8 - 16 EC:4

支持的最小值是 0,表示不提供纠删码保护。 此类部署的可用性/韧性完全依赖底层存储控制器或存储资源。

最大值取决于部署中初始服务器池的纠删集合大小,其上限为 ERASURE_SET_SIZE2\frac{\text{ERASURE\_SET\_SIZE}}{2}。 例如,纠删集合条带大小为 16 的部署,其标准校验最大值为 8。

可在启动后将该值更改为 0 与该纠删集合大小上限之间的任意值。 MinIO 只会将变更后的校验值应用于新写入对象。 现有对象会保留其创建时的校验值。

降低冗余存储类

说明

说明

MinIO Storage ClassesAWS Storage Classes 不同。

AWS Storage Classes 指将给定对象存储到的特定存储层级,例如 hotglacier 存储。 MinIO Storage Classes 会影响所使用的纠删码校验设置,并与对象的 可用性与韧性 相关。

如需在不同类型存储之间分层(例如用于成本管理),请参见 对象迁移(”Tiering”)

MINIO_STORAGE_CLASS_RRS

envvar

storage_class rrs

mc-conf

用于以 REDUCED 存储类写入对象的 parity level

MinIO 会参考请求元数据中的 x-amz-storage-class 头,以确定应为对象分配哪个存储类。 设置该头的具体语法或方式取决于与 MinIO 服务器交互时所使用的方法。

请使用 EC:M 记法指定该值,其中 M 表示要为对象创建的校验块数量。

该值 必须 小于或等于 MINIO_STORAGE_CLASS_STANDARD

对于纠删集合大小小于 2 的部署,不能设置此值。 纠删集合大小大于 1 的部署默认值为 EC:1。 纠删集合大小为 1 的部署默认值为 EC:0

校验保留优化

MINIO_STORAGE_CLASS_OPTIMIZE

envvar

storage_class optimize

mc-conf

默认情况下,如果目标纠删集合维持写入法定人数(write quorum) 有一个或多个驱动器离线,MinIO 会自动“升级”对象的校验。 该行为有助于确保给定对象与写入健康纠删集合的对象保持相同可用性。

将该设置指定为 capacity,可指示 MinIO 不为对象创建任何额外校验。 这会优先保障集群总体容量,但代价是当该纠删集合中更多驱动器故障时,对象可用性可能降低。

注释

MINIO_STORAGE_CLASS_COMMENT

envvar

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

为存储类设置添加注释。

12.1.4 - Silo Console 设置

说明

变更: RELEASE.2025-05-24T17-08-30Z

Console 现在仅提供对象浏览能力,类似于通过 mc 工具可用的能力。 对于用户管理等管理类交互,请使用 mc admin 命令。

本页中的部分设置可能已不再适用于较新的部署。

本页介绍用于管理 MinIO Console 访问与行为的设置。

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

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

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

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

警告

重要

每个配置项都会控制 MinIO 的基础行为和功能。 MinIO 强烈建议 先在 DEV 或 QA 等较低级别环境中测试配置变更,再应用到生产环境。

浏览器设置

以下设置用于控制内嵌 MinIO Console 的行为。

MinIO Console

可选

MINIO_BROWSER

envvar

指定 off 以禁用内嵌 MinIO Console。

此设置没有对应的配置变量。 请改用环境变量。

动画

可选

MINIO_BROWSER_LOGIN_ANIMATION

envvar

说明

新增: MinIO

Server RELEASE.2023-05-04T21-44-30Z

指定 off 以禁用 MinIO Console 的动画登录界面。 默认为 on

此设置没有对应的配置变量。 请改用环境变量。

浏览器重定向

可选

MINIO_BROWSER_REDIRECT

envvar

说明

新增: MinIO

Server RELEASE.2023-09-16T01-01-47Z

指定是否将来自 Web 浏览器的请求自动重定向到 Console 地址。 默认为 true

此设置没有对应的配置变量。 请改用环境变量。

浏览器重定向 URL

可选

MINIO_BROWSER_REDIRECT_URL

envvar

指定 MinIO Console 监听传入连接的 Fully Qualified Domain Name (FQDN)。

如果你希望 MinIO Console 仅通过反向代理服务对外提供,必须指定由该服务管理的主机名。

例如,假设某个反向代理被配置为将 https://example.net/minio/ 路由到 MinIO Console。 你必须将此环境变量设置为与该主机名一致,这样 Console 才会使用该主机名进行监听并响应请求。

如果省略此变量,Console 会在运行 MinIO Server 的主机所关联的所有 IP 地址或主机名上监听并响应。

此设置没有对应的配置变量。 请改用环境变量。

会话时长

可选

MINIO_BROWSER_SESSION_DURATION

envvar

说明

新增: MinIO

Server RELEASE.2023-08-23T10-07-06Z

指定使用 MinIO Console 时浏览器会话的持续时间。

MinIO 支持以下时间单位:

  • s - 秒,”60s”
  • m - 分钟,”60m”
  • h - 小时,”24h”
  • d - 天,”7d”

默认为 12h

此设置没有对应的配置变量。 请改用环境变量。

日志查询 URL

可选

MINIO_LOG_QUERY_URL

envvar

指定 PostgreSQL 服务的 URL,MinIO 会将 Audit logs 写入该服务。 内嵌 MinIO Console 提供日志搜索工具,可查询 PostgreSQL 服务中收集的日志。

此设置没有对应的配置变量。 请改用环境变量。

内容安全策略

可选

将 MinIO Console 配置为在 HTTP 响应中生成 Content-Security-Policy 头。 默认为 default-src 'self' 'unsafe-eval' 'unsafe-inline';

MINIO_BROWSER_CONTENT_SECURITY_POLICY

envvar

export MINIO_BROWSER_CONTENT_SECURITY_POLICY="default-src 'self' 'unsafe-eval' 'unsafe-inline';"
browser csp_policy

mc-conf

mc admin config set browser \
   csp_policy="default-src 'self' 'unsafe-eval' 'unsafe-inline';" \
   [ARGUMENT=VALUE ...]

严格传输安全

可选

将 MinIO Console 配置为在 HTTP 响应中生成 Strict-Transport-Security 头。

要生成该头,你 必须 使用 MINIO_BROWSER_HSTS_SECONDShsts_seconds 设置持续时间。 其他 HSTS 设置是可选的。

MINIO_BROWSER_HSTS_SECONDS

envvar

已配置策略生效的 max_age(秒)。 默认为 0,即禁用。 你 必须 配置 非零 时长,才能启用 Strict-Transport-Security 头。

export MINIO_BROWSER_HSTS_SECONDS=31536000
MINIO_BROWSER_HSTS_INCLUDE_SUB_DOMAINS

envvar

设置为 on 可将已配置的 HSTS 策略同时应用到所有 MinIO Console 子域名。 默认为 off

export MINIO_BROWSER_HSTS_INCLUDE_SUB_DOMAINS="on"
MINIO_BROWSER_HSTS_PRELOAD

envvar

设置为 on 可指示客户端浏览器将 MinIO Console 域名加入其 HSTS 预加载列表。 默认为 off

export MINIO_BROWSER_HSTS_PRELOAD="on"

以下配置项需要重启服务后才会生效。 要重启服务,请使用 mc admin service restart

browser hsts_seconds

mc-conf

已配置策略生效的 max_age(秒)。 默认为 0,即禁用。 你 必须 配置 非零 时长,才能启用 Strict-Transport-Security 头。

mc admin config set browser \
   hsts_seconds="31536000" \
   [ARGUMENT=VALUE ...]
browser hsts_include_subdomains

mc-conf

设置为 on 可将已配置的 HSTS 策略同时应用到所有 MinIO Console 子域名。 默认为 off

mc admin config set browser \
   hsts_include_subdomains="on" \
   hsts_seconds="31536000" \
   [ARGUMENT=VALUE ...]
browser hsts_preload

mc-conf

设置为 on 可指示客户端浏览器将 MinIO Console 域名加入其 HSTS 预加载列表。 默认为 off

mc admin config set browser \
   hsts_preload="on" \
   hsts_seconds="31536000" \
   [ARGUMENT=VALUE ...]

示例

以下示例展示了给定配置项对应的渲染后响应头。 等价的环境变量会生成相同结果。 所有示例均使用 31536000,即一个自然年(365 天)的秒数。

hsts_seconds

mc admin config set ALIAS browser hsts_seconds=31536000
Strict-Transport-Security: max-age=31536000

hsts_include_subdomains

mc admin config set ALIAS browser hsts_seconds=31536000 hsts_include_subdomains=on
Strict-Transport-Security: max-age=31536000; includeSubDomains

hsts_preload

mc admin config set ALIAS browser hsts_seconds=31536000 hsts_include_subdomains=on hsts_preload=on
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

来源策略

可选

将 MinIO Console 配置为在 HTTP 响应中生成 Referrer-Policy 头。 默认为 strict-origin-when-cross-origin

MINIO_BROWSER_REFERRER_POLICY

envvar

export MINIO_BROWSER_REFERRER_POLICY="strict-origin-when-cross-origin"
browser referrer_policy

mc-conf

mc admin config set browser \
   referrer_policy="strict-origin-when-cross-origin" \
   [ARGUMENT=VALUE ...]

Prometheus 设置

以下设置用于管理 MinIO 与你的 Prometheus 服务之间的交互方式。

Prometheus URL

可选

MINIO_PROMETHEUS_URL

envvar

指定已配置为 抓取 MinIO 指标 的 Prometheus 服务 URL。

MinIO Console 使用 minio-job Prometheus 抓取作业,将集群指标填充到 Dashboard

如果你使用独立的 MinIO Console 进程,则该变量对应 CONSOLE_PROMETHEUS_URL

此设置没有对应的配置变量。 请改用环境变量。

Prometheus Job ID

可选

MINIO_PROMETHEUS_JOB_ID

envvar

指定用于 抓取 MinIO 指标 的自定义 Prometheus job ID。

MinIO 默认为 minio-job

如果你使用独立的 MinIO Console 进程,则该变量对应 CONSOLE_PROMETHEUS_JOB_ID

此设置没有对应的配置变量。 请改用环境变量。

Prometheus Auth Token

可选

MINIO_PROMETHEUS_AUTH_TOKEN

envvar

指定 Console 连接 Prometheus 服务时应使用的 basic auth token

例如,你使用的 basic auth token 可能如下所示:

eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJwcm9tZXRoZXVzIiwic3ViIjoibWluaW8iLCJleHAiOjQ4NTAwMzg0MDJ9.GZCKR3d0FH2TCvNHSd39HaVfSuQVVV0s8glICBDmhT51V6CQ_hw8gTYlKHJmcpR8aHkqiJwCqcYJhaMmqwe00XY

如果你使用独立的 MinIO Console 进程,则该变量对应 CONSOLE_PROMETHEUS_AUTH_TOKEN

此设置没有对应的配置变量。 请改用环境变量。

12.1.5 - 指标与日志设置

本页面介绍用于控制 MinIO 指标与日志相关行为的设置。 更多信息请参见 指标与告警

这些设置用于将常规 minio server 日志和审计日志发布到 HTTP webhook。 更完整的文档请参见 将服务日志或审计日志发布到外部服务

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

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

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

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

警告

重要

每个配置项都会控制 MinIO 的基础行为和功能。 MinIO 强烈建议 先在 DEV 或 QA 等较低级别环境中测试配置变更,再应用到生产环境。

Prometheus 认证

此设置控制 MinIO 如何向 Prometheus 进行认证。

MINIO_PROMETHEUS_AUTH_TYPE

envvar

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

指定 Prometheus 抓取端点 的认证模式。

  • jwt - 默认 MinIO 要求抓取客户端提供 JWT token 以认证请求。

    使用 mc admin prometheus generate 生成所需的 JWT bearer token。

  • public MinIO 不要求抓取客户端对其请求进行认证。

服务器日志

以下部分介绍将 minio server 日志发布到 HTTP webhook 端点的 MinIO 配置设置。 有关这些设置的更完整文档和使用教程,请参见 将服务日志发布到 HTTP Webhook

定义多个端点

你可以通过为每组相关日志环境变量追加唯一标识符 _ID,将多个 webhook 端点指定为日志目标。 例如,以下设置定义了两个不同的服务器日志 webhook 端点:

环境变量
export MINIO_LOGGER_WEBHOOK_ENABLE_PRIMARY="on"
export MINIO_LOGGER_WEBHOOK_AUTH_TOKEN_PRIMARY="TOKEN"
export MINIO_LOGGER_WEBHOOK_ENDPOINT_PRIMARY="http://webhook-1.example.net"

export MINIO_LOGGER_WEBHOOK_ENABLE_SECONDARY="on"
export MINIO_LOGGER_WEBHOOK_AUTH_TOKEN_SECONDARY="TOKEN"
export MINIO_LOGGER_WEBHOOK_ENDPOINT_SECONDARY="http://webhook-2.example.net"
配置项
mc admin config set logger_webhook:primary \
   endpoint="http://webhook-01.example.net" [ARGUMENTS=VALUE ...]

mc admin config set logger_webhook:secondary \
   endpoint="http://webhook-02.example.net" [ARGUMENTS=VALUE ...]

设置

Enable

MINIO_LOGGER_WEBHOOK_ENABLE

envvar

指定 "on" 以启用将 minio server 日志发布到 HTTP webhook 端点。

需要同时指定 MINIO_LOGGER_WEBHOOK_ENDPOINT

logger_webhook

mc-conf

用于配置将日志发送到 HTTP webhook 端点的顶层配置键。

端点

必填

MINIO_LOGGER_WEBHOOK_ENDPOINT

envvar

logger_webhook endpoint

mc-conf

webhook 的 HTTP 端点。

认证 Token

可选

MINIO_LOGGER_WEBHOOK_AUTH_TOKEN

envvar

端点所需类型的认证 token。 对于不需要认证的端点可省略。

为支持多种 token 类型,MinIO 会使用 完全按原样指定 的值构造请求认证头。 具体端点可能要求你附加额外信息。

例如:对于 Bearer token,请添加前缀 Bearer

export MINIO_LOGGER_WEBHOOK_AUTH_TOKEN_myendpoint="Bearer 1a2b3c4f5e"

请根据端点要求调整该值。 自定义认证格式可能类似如下:

export MINIO_LOGGER_WEBHOOK_AUTH_TOKEN_xyz="ServiceXYZ 1a2b3c4f5e"

详情请参阅目标服务的文档。

该环境变量对应 logger_webhook auth_token 配置项。

logger_webhook auth_token

mc-conf

端点所需类型的认证 token。 对于不需要认证的端点可省略。

为支持多种 token 类型,MinIO 会使用 完全按原样指定 的值构造请求认证头。 具体端点可能要求你附加额外信息。

例如:对于 Bearer token,请添加前缀 Bearer

   mc admin config set myminio logger_webhook   \
      endpoint="https://webhook-1.example.net"  \
      auth_token="Bearer 1a2b3c4f5e"

请根据端点要求调整该值。 自定义认证格式可能类似如下:

   mc admin config set myminio logger_webhook   \
      endpoint="https://webhook-1.example.net"  \
      auth_token="ServiceXYZ 1a2b3c4f5e"

详情请参阅目标服务的文档。

批大小

说明

新增: MinIO

Server RELEASE.2024-03-10T02-53-48Z

可选

MINIO_LOGGER_WEBHOOK_BATCH_SIZE

envvar

logger_webhook batch_size

mc-conf

按批次收集并发送指定数量的事件到 webhook。 如果未设置,MinIO 每个请求发送一个事件。

客户端证书

可选

还需要同时设置 Client Key

MINIO_LOGGER_WEBHOOK_CLIENT_CERT

envvar

logger_webhook client_cert

mc-conf

用于向 webhook logger 认证的 mTLS 证书路径。

客户端密钥

可选

如果定义了 Client Certificate,则为必填。

MINIO_LOGGER_WEBHOOK_CLIENT_KEY

envvar

logger_webhook client_key

mc-conf

用于向 webhook logger 服务认证的 mTLS 证书密钥路径。

代理

可选

MINIO_LOGGER_WEBHOOK_PROXY

envvar

logger_webhook proxy

mc-conf

说明

新增: MinIO

RELEASE.2023-02-22T18-23-45Z

定义在 MinIO 与外部 webhook 通信时供 webhook logger 使用的代理。

队列目录

可选

说明

新增: RELEASE.2023-05-18T00-05-36Z

MINIO_LOGGER_WEBHOOK_QUEUE_DIR

envvar

logger_webhook queue_dir

mc-conf

指定目录路径(例如 /opt/minio/events)以启用 MinIO 对未投递消息的持久事件存储。 MinIO 进程必须对指定目录具有读取、写入和列举权限。

当 webhook 服务离线时,MinIO 会将未投递事件存储到指定存储中,并在连接恢复后回放这些事件。

队列大小

可选

MINIO_LOGGER_WEBHOOK_QUEUE_SIZE

envvar

logger_webhook queue_size

mc-conf

用于 logger webhook 目标队列大小的整数值。

Webhook 审计日志

以下部分介绍用于将审计日志发布到 HTTP webhook 端点的 MinIO 环境变量。 有关这些环境变量的更完整文档和使用教程,请参见 将审计日志发布到 HTTP Webhook

多个目标

你可以通过为每组相关日志设置追加唯一标识符 _ID,将多个 webhook 端点指定为审计日志目标。

例如,以下命令设置了两个不同的审计日志 webhook 端点:

export MINIO_AUDIT_WEBHOOK_ENABLE_PRIMARY="on"
export MINIO_AUDIT_WEBHOOK_AUTH_TOKEN_PRIMARY="TOKEN"
export MINIO_AUDIT_WEBHOOK_ENDPOINT_PRIMARY="http://webhook-1.example.net"
export MINIO_AUDIT_WEBHOOK_CLIENT_CERT_SECONDARY="/tmp/cert.pem"
export MINIO_AUDIT_WEBHOOK_CLIENT_KEY_SECONDARY="/tmp/key.pem"

export MINIO_AUDIT_WEBHOOK_ENABLE_SECONDARY="on"
export MINIO_AUDIT_WEBHOOK_AUTH_TOKEN_SECONDARY="TOKEN"
export MINIO_AUDIT_WEBHOOK_ENDPOINT_SECONDARY="http://webhook-1.example.net"
export MINIO_AUDIT_WEBHOOK_CLIENT_CERT_SECONDARY="/tmp/cert.pem"
export MINIO_AUDIT_WEBHOOK_CLIENT_KEY_SECONDARY="/tmp/key.pem"
audit_webhook

mc-conf

用于定义 HTTP webhook 目标并发布 MinIO audit logs 的顶层配置键。

使用 mc admin config set 设置或更新 HTTP webhook 目标。 以空格(" ")分隔列表的形式指定其他可选参数。

mc admin config set audit_webhook \
   endpoint="http://webhook.example.net" [ARGUMENTS=VALUE ...]

你可以通过在顶层键后追加 [:name] 来指定多个 HTTP webhook 目标。 例如,以下命令分别将两个不同的 HTTP webhook 目标设置为 primarysecondary

mc admin config set audit_webhook:primary \
   endpoint="http://webhook-01.example.net" [ARGUMENTS=VALUE ...]


mc admin config set audit_webhook:secondary \
   endpoint="http://webhook-02.example.net" [ARGUMENTS=VALUE ...]

设置

Enable

MINIO_AUDIT_WEBHOOK_ENABLE

envvar

指定 "on" 以启用向 HTTP webhook 端点发布审计日志。

需要同时指定 MINIO_AUDIT_WEBHOOK_ENDPOINT

配置一个 audit webhook 即表示启用该目标。 不存在单独的 enable 配置项。

端点

必填

MINIO_AUDIT_WEBHOOK_ENDPOINT

envvar

audit_webhook endpoint

mc-conf

webhook 的 HTTP 端点。

认证 Token

可选

MINIO_AUDIT_WEBHOOK_AUTH_TOKEN

envvar

audit_webhook auth_token

mc-conf

端点所需类型的认证 token。 对于不需要认证的端点可省略。

为支持多种 token 类型,MinIO 会使用 完全按原样指定 的值构造请求认证头。 具体端点可能要求你附加额外信息。

例如,对于 Bearer token,请添加前缀 Bearer

export MINIO_AUDIT_WEBHOOK_AUTH_TOKEN_myendpoint="Bearer 1a2b3c4f5e"

请根据端点要求调整该值。

自定义认证格式可能类似如下:

export MINIO_AUDIT_WEBHOOK_AUTH_TOKEN_xyz="ServiceXYZ 1a2b3c4f5e"
mc admin config set myminio audit_webhook       \
         endpoint="http://webhook.example.net"  \
         auth_token="Bearer 1a2b3c4f5e"

请根据端点要求调整该值。

自定义认证格式的命令可能类似如下:

mc admin config set myminio audit_webhook       \
         endpoint="http://webhook.example.net"  \
         auth_token="ServiceXYZ 1a2b3c4f5e"

详情请参阅目标服务的文档。

批大小

说明

新增: MinIO

Server RELEASE.2024-03-10T02-53-48Z

可选

MINIO_AUDIT_WEBHOOK_BATCH_SIZE

envvar

audit_webhook batch_size

mc-conf

按批次收集并发送指定数量的事件到 webhook。 如果未设置,MinIO 每个请求发送一个事件。

客户端证书

可选

MINIO_AUDIT_WEBHOOK_CLIENT_CERT

envvar

还需要同时指定 MINIO_AUDIT_WEBHOOK_CLIENT_KEY

audit_webhook client_cert

mc-conf

还需要同时指定 client_key

提交给 HTTP webhook 的 x.509 客户端证书。 对于不要求客户端提供已知 TLS 证书的 webhook 可省略。

客户端密钥

可选

MINIO_AUDIT_WEBHOOK_CLIENT_KEY

envvar

还需要同时指定 MINIO_AUDIT_WEBHOOK_CLIENT_CERT

audit_webhook client_key

mc-conf

需要指定 client_cert

提交给 HTTP webhook 的 x.509 私钥。 对于不要求客户端提供已知 TLS 证书的 webhook 可省略。

队列目录

可选

MINIO_AUDIT_WEBHOOK_QUEUE_DIR

envvar

audit_webhook queue_dir

mc-conf

说明

新增: RELEASE.2023-05-18T00-05-36Z

指定目录路径(例如 /opt/minio/events)以启用 MinIO 对未投递消息的持久事件存储。 MinIO 进程必须对指定目录具有读取、写入和列举权限。

当 webhook 服务离线时,MinIO 会将未投递事件存储到指定存储中,并在连接恢复后回放这些事件。

队列大小

可选

MINIO_AUDIT_WEBHOOK_QUEUE_SIZE

envvar

audit_webhook queue_size

mc-conf

用于 audit webhook 目标队列大小的整数值。 默认值为 100000 个事件。

Kafka 审计日志

以下部分介绍用于将审计日志发布到 Kafka broker 的 MinIO 环境变量。

audit_kafka

mc-conf

用于定义 Kafka broker 目标并发布 MinIO audit logs 的顶层配置键。

使用 mc admin config set 设置或更新 Kafka 审计目标。 以空格(" ")分隔列表的形式指定其他可选参数。

mc admin config set audit_kafka \
   brokers="https://kafka-endpoint.example.net:9092" [ARGUMENTS=VALUE ...]

设置

Enable

必填

MINIO_AUDIT_KAFKA_ENABLE

envvar

设置为 "on" 以启用该目标。

设置为 "off" 以禁用该目标。

该值没有对应的配置项。 使用环境变量可禁用已配置的 audit webhook 目标。

Brokers

必填

MINIO_AUDIT_KAFKA_BROKERS

envvar

audit_kafka brokers

mc-conf

Kafka broker 地址的逗号分隔列表:

brokers="https://kafka-1.example.net:9092,https://kafka-2.example.net:9092"

至少必须有一个 broker 在线且 MinIO server 可达,才能初始化并发送审计日志事件。 MinIO 会按指定顺序检查每个 broker。

Topic

必填

MINIO_AUDIT_KAFKA_TOPIC

envvar

audit_kafka topic

mc-conf

与 MinIO 审计日志事件关联的 Kafka topic 名称。

TLS

可选

MINIO_AUDIT_KAFKA_TLS

envvar

audit_kafka tls

mc-conf

设置为 "on" 以启用到指定 Kafka brokers 的 TLS 连接。

默认值为 "off"

TLS Skip Verify

可选

MINIO_AUDIT_KAFKA_TLS_SKIP_VERIFY

envvar

audit_kafka tls_skip_verify

mc-conf

设置为 "on" 以指示 MinIO 跳过对 Kafka broker TLS 证书的校验。

你可以使用该选项连接使用未知签发方 TLS 证书的 Kafka brokers,例如自签名证书或企业内部 CA(Certificate Authorities)签发的证书。

默认情况下,MinIO 会同时使用系统信任库 以及 MinIO CA directory 中的内容来校验远端客户端 TLS 证书。

默认值为 "off",即严格校验 TLS 证书。

SASL

可选

MINIO_AUDIT_KAFKA_SASL

envvar

需要指定 MINIO_AUDIT_KAFKA_SASL_USERNAMEMINIO_AUDIT_KAFKA_SASL_PASSWORD

audit_kafka sasl

mc-conf

需要指定 sasl_usernamesasl_password

设置为 "on" 以指示 MinIO 使用 SASL 对 Kafka brokers 进行认证。

SASL Username

可选

MINIO_AUDIT_KAFKA_SASL_USERNAME

envvar

需要指定 MINIO_AUDIT_KAFKA_SASLMINIO_AUDIT_KAFKA_SASL_PASSWORD

audit_kafka sasl_username

mc-conf

需要指定 saslsasl_password

MinIO 用于对 Kafka brokers 进行认证的 SASL 用户名。

SASL Password

可选

MINIO_AUDIT_KAFKA_SASL_PASSWORD

envvar

需要指定 MINIO_AUDIT_KAFKA_SASLMINIO_AUDIT_KAFKA_SASL_USERNAME

audit_kafka sasl_password

mc-conf

需要指定 saslsasl_username

MinIO 用于对 Kafka brokers 进行认证的 SASL 密码。

SASL Mechanism

可选

MINIO_AUDIT_KAFKA_SASL_MECHANISM

envvar

警告

重要

PLAIN 认证机制会以明文形式在网络中传输凭据。 使用 MINIO_AUDIT_KAFKA_TLS 以启用到 Kafka brokers 的 TLS 连接,并确保 SASL 凭据安全传输。

audit_kafka sasl_mechanism

mc-conf

警告

重要

PLAIN 认证机制会以明文形式在网络中传输凭据。 使用 tls 以启用到 Kafka brokers 的 TLS 连接,并确保 SASL 凭据安全传输。

MinIO 用于对 Kafka brokers 进行认证的 SASL 机制。

默认值为 plain

TLS Client Auth

可选

MINIO_AUDIT_KAFKA_TLS_CLIENT_AUTH

envvar

需要指定 MINIO_AUDIT_KAFKA_CLIENT_TLS_CERTMINIO_AUDIT_KAFKA_CLIENT_TLS_KEY

audit_kafka tls_client_auth

mc-conf

需要指定 client_tls_certclient_tls_key

设置为 "on" 以指示 MinIO 使用 mTLS 对 Kafka brokers 进行认证。

Client TLS Certificate

可选

MINIO_AUDIT_KAFKA_CLIENT_TLS_CERT

envvar

audit_kafka client_tls_cert

mc-conf

用于 mTLS 认证的 TLS 客户端证书路径。

Client TLS Key

可选

MINIO_AUDIT_KAFKA_CLIENT_TLS_KEY

envvar

audit_kafka client_tls_key

mc-conf

用于 mTLS 认证的 TLS 客户端私钥路径。

Version

可选

MINIO_AUDIT_KAFKA_VERSION

envvar

audit_kafka version

mc-conf

MinIO 在指定端点期望的 Kafka broker 版本。

如果 Kafka broker 版本与此设置指定的不匹配,MinIO 会返回错误。

Comment

可选

MINIO_AUDIT_KAFKA_COMMENT

envvar

audit_kafka comment

mc-conf

与该配置关联的注释。

队列目录

可选

MINIO_AUDIT_KAFKA_QUEUE_DIR

envvar

audit_kafka queue_dir

mc-conf

指定目录路径(例如 /opt/minio/events)以启用 MinIO 对未投递消息的持久事件存储。

当 Kafka 服务离线时,MinIO 会将未投递事件存储到指定存储中,并在连接恢复后回放这些事件。

队列大小

可选

MINIO_AUDIT_KAFKA_QUEUE_SIZE

envvar

audit_kafka queue_size

mc-conf

指定未投递消息的最大上限。 默认值为 100000

12.1.6 - 存储桶通知设置

本页介绍用于控制 MinIO bucket notifications 相关行为的设置。

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

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

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

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

警告

重要

每个配置项都会控制 MinIO 的基础行为和功能。 MinIO 强烈建议 先在 DEV 或 QA 等较低级别环境中测试配置变更,再应用到生产环境。

同步事件

可选

MINIO_API_SYNC_EVENTS

envvar

api sync_events

mc-conf

启用同步 存储桶通知

指定 on 可让 MinIO 在远端目标收到事件并返回成功之后,再继续处理后续事件。

默认值为 off,即异步存储桶通知。在这种模式下,MinIO 不会等待远端目标在收到 事件后返回成功。

支持的通知目标

通知需要一个用于接收事件的目标。 MinIO 支持多种通知目标。 每种目标类型的设置位于各自独立的页面。 请根据实际使用的目标类型,选择下方对应链接。

12.1.6.1 - AMQP 通知设置

本文档说明了将 AMQP 服务配置为 存储桶通知 目标的相关设置。 有关如何使用这些设置的教程,请参阅 将事件发布到 AMQP (RabbitMQ)

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

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

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

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

警告

重要

每个配置项都会控制 MinIO 的基础行为和功能。 MinIO 强烈建议 先在 DEV 或 QA 等较低级别环境中测试配置变更,再应用到生产环境。

多个 AMQP 目标

可以通过在顶层键后为每组相关 AMQP 设置追加唯一标识符 _ID,来指定多个 AMQP 服务端点。

示例

例如,以下命令分别将两个不同的 AMQP 服务端点设置为 PRIMARYSECONDARY

export MINIO_NOTIFY_AMQP_ENABLE_PRIMARY="on"
export MINIO_NOTIFY_AMQP_URL_PRIMARY="amqp://user:password@amqp-endpoint.example.net:5672"

export MINIO_NOTIFY_AMQP_ENABLE_SECONDARY="on"
export MINIO_NOTIFY_AMQP_URL_SECONDARY="amqp://user:password@amqp-endpoint.example.net:5672"

例如,MINIO_NOTIFY_AMQP_ENABLE_PRIMARY 表示该环境变量关联到 ID 为 PRIMARY 的 AMQP 服务端点。

mc admin config set notify_amqp:primary \
   url="user:password@amqp://amqp-endpoint.example.net:5672" [ARGUMENT=VALUE ...]

mc admin config set notify_amqp:secondary \
   url="user:password@amqp://amqp-endpoint.example.net:5672" [ARGUMENT=VALUE ...]

请注意,对于配置设置,唯一标识符仅追加到 amqp,而不是每个单独参数。

设置

启用

MINIO_NOTIFY_AMQP_ENABLE

envvar

如果设置为 on,则必须指定 MINIO_NOTIFY_AMQP_URL

指定 on 以启用向 AMQP 端点发布存储桶通知。

默认值为 off

notify_amqp

mc-conf

用于定义 AMQP 服务端点以供 MinIO 存储桶通知 使用的顶层配置键。

使用 mc admin config set 设置或更新 AMQP 服务端点。 对于每个目标,url 参数都是 必需 的。 以空白字符(" ")分隔的列表形式指定其他可选参数。

mc admin config set notify_amqp \
  url="amqp://user:password@endpoint:port" \
  [ARGUMENT="VALUE"] ...

URL

必需

MINIO_NOTIFY_AMQP_URL

envvar

notify_amqp url

mc-conf

指定 MinIO 发布存储桶事件的 AMQP 服务器端点。 例如,amqp://myuser:mypassword@localhost:5672

说明

变更: RELEASE.2023-05-27T05-56-19Z

在添加目标之前,如果指定的 URL 可解析且可达, MinIO 会先检查其健康状态。 如果现有目标处于离线状态,MinIO 也不再阻止添加新的通知目标。

Exchange(交换机)

可选

MINIO_NOTIFY_AMQP_EXCHANGE

envvar

notify_amqp exchange

mc-conf

指定要使用的 AMQP exchange 名称。

Exchange 类型

可选

MINIO_NOTIFY_AMQP_EXCHANGE_TYPE

envvar

notify_amqp exchange_type

mc-conf

指定 AMQP exchange 的类型。

路由键

可选

MINIO_NOTIFY_AMQP_ROUTING_KEY

envvar

notify_amqp routing_key

mc-conf

指定用于发布事件的 routing key。

Mandatory(强制)

可选

MINIO_NOTIFY_AMQP_MANDATORY

envvar

notify_amqp mandatory

mc-conf

指定 off 以忽略消息未送达错误。 默认值为 on

持久化

可选

MINIO_NOTIFY_AMQP_DURABLE

envvar

notify_amqp durable

mc-conf

指定 on 以在 broker 重启后保留消息队列。 默认值为 off

No Wait(不等待)

可选

MINIO_NOTIFY_AMQP_NO_WAIT

envvar

notify_amqp no_wait

mc-conf

指定 on 以启用非阻塞消息投递。 默认值为 off

Internal(内部)

可选

MINIO_NOTIFY_AMQP_INTERNAL

envvar

notify_amqp internal

mc-conf

指定 on 以仅在 exchange 绑定到其他 exchanges 时使用该 exchange。 有关 AMQP exchange 绑定的更多信息,请参阅 RabbitMQ 文档中的 Exchange to Exchange Bindings

自动删除

可选

MINIO_NOTIFY_AMQP_AUTO_DELETED

envvar

notify_amqp auto_deleted

mc-conf

指定 on 以在没有消费者时自动删除消息队列。 默认值为 off

投递模式

可选

MINIO_NOTIFY_AMQP_DELIVERY_MODE

envvar

notify_amqp delivery_mode

mc-conf

指定 1 以将投递模式设置为非持久化队列。

指定 2 以将投递模式设置为持久化队列。

队列目录

可选

MINIO_NOTIFY_AMQP_QUEUE_DIR

envvar

notify_amqp queue_dir

mc-conf

指定目录路径以启用 MinIO 对未送达消息的持久化事件存储,例如 /opt/minio/events

当 AMQP 服务离线时,MinIO 会将未送达事件存储在指定存储中,并在连接恢复后重放这些已存储事件。

队列限制

可选

MINIO_NOTIFY_AMQP_QUEUE_LIMIT

envvar

notify_amqp queue_limit

mc-conf

指定未送达消息的最大数量限制。 默认值为 100000

注释

可选

MINIO_NOTIFY_AMQP_COMMENT

envvar

notify_amqp comment

mc-conf

为 AMQP 配置指定注释。

12.1.6.2 - Elasticsearch 通知设置

本文档介绍如何配置 Elasticsearch 服务作为 存储桶通知 的目标。 有关如何使用这些设置的教程,请参阅 将事件发布到 Elasticsearch

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

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

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

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

警告

重要

每个配置项都会控制 MinIO 的基础行为和功能。 MinIO 强烈建议 先在 DEV 或 QA 等较低级别环境中测试配置变更,再应用到生产环境。

多个 Elasticsearch 目标

可通过为每组相关设置追加唯一标识符 _ID 来指定多个 Elasticsearch 服务端点。 例如,以下命令分别将两个不同的 Elasticsearch 服务端点设置为 PRIMARYSECONDARY

示例

export MINIO_NOTIFY_ELASTICSEARCH_ENABLE_PRIMARY="on"
export MINIO_NOTIFY_ELASTICSEARCH_URL_PRIMARY="https://user:password@elasticsearch-endpoint.example.net:9200"
export MINIO_NOTIFY_ELASTICSEARCH_INDEX_PRIMARY="bucketevents"
export MINIO_NOTIFY_ELASTICSEARCH_FORMAT_PRIMARY="namespace"

export MINIO_NOTIFY_ELASTICSEARCH_ENABLE_SECONDARY="on"
export MINIO_NOTIFY_ELASTICSEARCH_URL_SECONDARY="https://user:password@elasticsearch-endpoint.example.net:9200"
export MINIO_NOTIFY_ELASTICSEARCH_INDEX_SECONDARY="bucketevents"
export MINIO_NOTIFY_ELASTICSEARCH_FORMAT_SECONDARY="namespace"
mc admin config set notify_elasticsearch:primary \
   url="user:password@https://elasticsearch-endpoint.example.net:9200" \
   index="bucketevents" \
   format="namespace" \
   [ARGUMENT=VALUE ...]

mc admin config set notify_elasticsearch:secondary \
   url="user:password@https://elasticsearch-endpoint.example.net:9200" \
   index="bucketevents" \
   format="namespace" \
   [ARGUMENT=VALUE ...]

注意,对于配置设置,唯一标识符只追加到 notify_elasticsearch,而不是每个单独参数。

设置

启用

必需

MINIO_NOTIFY_ELASTICSEARCH_ENABLE

envvar

指定 on 以启用将存储桶通知发布到 Elasticsearch 服务端点。

默认为 off

如果设置为 on,则还必须指定以下环境变量:

notify_elasticsearch

mc-conf

用于定义 Elasticsearch 服务端点以配合 MinIO bucket notifications 使用的顶级配置键。

使用 mc admin config set 设置或更新 Elasticsearch 服务端点。 对于每个目标,以下参数为 必需

其他可选参数以空白字符(" ")分隔的列表形式指定。

mc admin config set notify_elasticsearch \
  url="https://user:password@elasticsearch.example.com:9200" \
  [ARGUMENT="VALUE"] ... \

URL

必需

MINIO_NOTIFY_ELASTICSEARCH_URL

envvar

notify_elasticsearch url

mc-conf

指定 MinIO 将存储桶事件发布到的 Elasticsearch 服务端点。 例如:https://elasticsearch.example.com:9200

MinIO 支持通过 URL 参数传递认证信息,格式为 PROTOCOL://USERNAME:PASSWORD@HOSTNAME:PORT

说明

变更: RELEASE.2023-05-27T05-56-19Z

在添加目标之前,如果指定的 URL 可解析且可达, MinIO 会先检查其健康状态。 如果现有目标处于离线状态,MinIO 也不再阻止添加新的通知目标。

Index

必需

MINIO_NOTIFY_ELASTICSEARCH_INDEX

envvar

notify_elasticsearch index

mc-conf

指定用于存储或更新 MinIO 存储桶事件的 Elasticsearch index 名称。 如果 index 不存在,Elasticsearch 会自动创建。

Format

必需

MINIO_NOTIFY_ELASTICSEARCH_FORMAT

envvar

notify_elasticsearch format

mc-conf

指定写入 Elasticsearch index 的事件数据格式。 MinIO 支持以下取值:

namespace

对于每个存储桶事件,MinIO 会创建一个 JSON 文档,以事件中的存储桶名和对象名作为文档 ID,并将实际事件作为文档正文的一部分。 对该对象的后续更新会修改该对象在 index 中的现有条目。 同样,删除该对象也会删除对应的 index 条目。

access

对于每个存储桶事件,MinIO 会创建一个包含事件详情的 JSON 文档,并以 Elasticsearch 生成的随机 ID 将其追加到 index。 对对象的后续更新会产生新的 index 条目,而现有条目保持不变。

Username

可选

MINIO_NOTIFY_ELASTICSEARCH_USERNAME

envvar

notify_elasticsearch username

mc-conf

用于连接启用了认证的 Elasticsearch 服务端点的用户名。

Password

可选

MINIO_NOTIFY_ELASTICSEARCH_PASSWORD

envvar

notify_elasticsearch password

mc-conf

用于连接启用了认证的 Elasticsearch 服务端点的密码。

说明

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

当该值作为 mc admin config get 的返回内容一部分时,MinIO 会对其进行脱敏。

队列目录

可选

MINIO_NOTIFY_ELASTICSEARCH_QUEUE_DIR

envvar

notify_elasticsearch queue_dir

mc-conf

指定目录路径以启用 MinIO 针对未投递消息的持久化事件存储,例如 /opt/minio/events

当 Elasticsearch 服务离线时,MinIO 会将未投递事件存储在指定存储中,并在连接恢复后重放这些已存储事件。

队列上限

可选

MINIO_NOTIFY_ELASTICSEARCH_QUEUE_LIMIT

envvar

notify_elasticsearch queue_limit

mc-conf

指定未投递消息的最大上限。 默认为 100000

注释

可选

MINIO_NOTIFY_ELASTICSEARCH_COMMENT

envvar

notify_elasticsearch comment

mc-conf

指定与 Elasticsearch 配置关联的注释。

12.1.6.3 - Kafka 通知设置

本页面记录了将 Kafka 服务配置为 存储桶通知 目标的相关设置。 有关如何使用这些设置的教程,请参见 将事件发布到 Kafka

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

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

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

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

警告

重要

每个配置项都会控制 MinIO 的基础行为和功能。 MinIO 强烈建议 先在 DEV 或 QA 等较低级别环境中测试配置变更,再应用到生产环境。

多个 Kafka 目标

你可以在顶层键后附加唯一标识符 _ID,为每组相关的 Kafka 设置指定多个 Kafka 服务端点。

示例

例如,以下命令分别将两个不同的 Kafka 服务端点设置为 PRIMARYSECONDARY

export MINIO_NOTIFY_KAFKA_ENABLE_PRIMARY="on"
export MINIO_NOTIFY_KAFKA_BROKERS_PRIMARY="https://kafka1.example.net:9200, https://kafka2.example.net:9200"

export MINIO_NOTIFY_KAFKA_ENABLE_SECONDARY="on"
export MINIO_NOTIFY_KAFKA_BROKERS_SECONDARY="https://kafka1.example.net:9200, https://kafka2.example.net:9200"
mc admin config set notify_kafka:primary \
   brokers="https://kafka1.example.net:9200, https://kafka2.example.net:9200"
   [ARGUMENT=VALUE ...]

mc admin config set notify_kafka:secondary \
   brokers="https://kafka1.example.net:9200, https://kafka2.example.net:9200"
   [ARGUMENT=VALUE ...]

请注意,对于配置设置,唯一标识符只附加到 notify_kafka,而不是附加到每个单独参数。

设置

启用

必需

MINIO_NOTIFY_KAFKA_ENABLE

envvar

指定 on 以启用将存储桶通知发布到 Kafka 服务端点。

默认为 off

notify_kafka

mc-conf

用于定义 Kafka 服务端点并与 MinIO bucket notifications 配合使用的顶层配置键。

使用 mc admin config set 设置或更新 Kafka 服务端点。 对于每个目标,brokers 参数都是 必需 的。 其他可选参数请以空白字符(" ")分隔的列表形式指定。

mc admin config set notify_kafka \
  brokers="https://kafka1.example.net:9200, https://kafka2.example.net:9200"
  [ARGUMENT="VALUE"] ... \

Brokers

必需

MINIO_NOTIFY_KAFKA_BROKERS

envvar

notify_kafka brokers

mc-conf

指定以逗号分隔的 Kafka broker 地址列表。 例如:

"kafka1.example.com:2021,kafka2.example.com:2021"

说明

变更: RELEASE.2023-05-27T05-56-19Z

在添加目标之前,如果指定的 URL 可解析且可达, MinIO 会先检查其健康状态。 如果现有目标处于离线状态,MinIO 也不再阻止添加新的通知目标。

Topic

可选

MINIO_NOTIFY_KAFKA_TOPIC

envvar

notify_kafka topic

mc-conf

指定 MinIO 发布存储桶事件的 Kafka topic 名称。

SASL

可选

MINIO_NOTIFY_KAFKA_SASL

envvar

notify_kafka sasl

mc-conf

指定 on 以启用 SASL 身份验证。

SASL Username

可选

MINIO_NOTIFY_KAFKA_SASL_USERNAME

envvar

notify_kafka sasl_username

mc-conf

指定用于对 Kafka broker 执行 SASL/PLAIN 或 SASL/SCRAM 身份验证的用户名。

SASL Password

可选

MINIO_NOTIFY_KAFKA_SASL_PASSWORD

envvar

notify_kafka sasl_password

mc-conf

指定用于对 Kafka broker 执行 SASL/PLAIN 或 SASL/SCRAM 身份验证的密码。

说明

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

当此值作为 mc admin config get 返回结果的一部分时,MinIO 会对其进行脱敏。

SASL Mechanism

可选

MINIO_NOTIFY_KAFKA_SASL_MECHANISM

envvar

notify_kafka sasl_mechanism

mc-conf

指定用于对 Kafka broker 进行身份验证的 SASL 机制。 MinIO 支持以下机制:

  • PLAIN(默认)
  • SHA256
  • SHA512

TLS Client Auth

可选

MINIO_NOTIFY_KAFKA_TLS_CLIENT_AUTH

envvar

notify_kafka tls_client_auth

mc-conf

指定 Kafka broker 的客户端身份验证类型。 下表列出了支持的取值及其映射关系

身份验证类型
0 NoClientCert
1 RequestClientCert
2 RequireAnyClientCert
3 VerifyClientCertIfGiven
4 RequireAndVerifyClientCert

有关各客户端身份验证类型的更多信息,请参见 ClientAuthType

TLS

可选

MINIO_NOTIFY_KAFKA_TLS

envvar

notify_kafka tls

mc-conf

指定 on 以启用与 Kafka broker 的 TLS 连接。

TLS Skip Verify

可选

MINIO_NOTIFY_KAFKA_TLS_SKIP_VERIFY

envvar

notify_kafka tls_skip_verify

mc-conf

启用或禁用对 NATS 服务端点 TLS 证书的 TLS 验证。

  • 指定 on 以禁用 TLS 验证(默认)。
  • 指定 off 以启用 TLS 验证。

Client TLS Cert

可选

MINIO_NOTIFY_KAFKA_CLIENT_TLS_CERT

envvar

notify_kafka client_tls_cert

mc-conf

指定客户端证书路径,用于对 Kafka broker 执行 mTLS 身份验证。

Client TLS Key

可选

MINIO_NOTIFY_KAFKA_CLIENT_TLS_KEY

envvar

notify_kafka client_tls_key

mc-conf

指定客户端私钥路径,用于对 Kafka broker 执行 mTLS 身份验证。

Version

可选

MINIO_NOTIFY_KAFKA_VERSION

envvar

notify_kafka version

mc-conf

指定在对 Kafka 集群执行操作时假定的 Kafka 集群版本。 有关此字段行为的更多信息,请参见 sarama reference documentation

Batch Size

可选

MINIO_NOTIFY_KAFKA_BATCH_SIZE

envvar

notify_kafka batch_size

mc-conf

指定整数值,作为向 Kafka 发送记录时的 batch size

说明

变更: RELEASE.2023-12-02T10-51-33Z

MinIO 先前将此值限制为 100

Queue Directory

可选

MINIO_NOTIFY_KAFKA_QUEUE_DIR

envvar

notify_kafka queue_dir

mc-conf

指定目录路径以启用 MinIO 对未投递消息的持久化事件存储,例如 /opt/minio/events

当 Kafka server/broker 离线时,MinIO 会将未投递事件存储在指定存储中,并在连接恢复后重放这些已存储事件。

Queue Limit

可选

MINIO_NOTIFY_KAFKA_QUEUE_LIMIT

envvar

notify_kafka queue_limit

mc-conf

指定未投递消息的最大限制。 默认为 100000

Comment

可选

MINIO_NOTIFY_KAFKA_COMMENT

envvar

notify_kafka comment

mc-conf

指定与 Kafka 配置关联的注释。

Compression Codec

说明

新增: MinIO

Server RELEASE.2023-12-09T18-17-51Z

可选

MINIO_NOTIFY_KAFKA_PRODUCER_COMPRESSION_CODEC

envvar

notify_kafka compression_codec

mc-conf

指定向 Kafka 发送记录时使用的压缩编解码器。

支持以下取值:

  • none
  • snappy
  • gzip
  • lz4
  • zstd

Compression Level

说明

新增: MinIO

Server RELEASE.2023-12-09T18-17-51Z

可选

MINIO_NOTIFY_KAFKA_PRODUCER_COMPRESSION_LEVEL

envvar

notify_kafka compression_level

mc-conf

根据已配置的压缩编解码器控制应用的压缩级别。

指定大于或等于 0 的整数值。 该值的效果取决于所选编解码器。

12.1.6.4 - MQTT 通知设置

本页面记录了将 MQTT 服务配置为 存储桶通知 目标的相关设置。 有关如何使用这些设置的教程,请参阅 将事件发布到 MQTT

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

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

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

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

警告

重要

每个配置项都会控制 MinIO 的基础行为和功能。 MinIO 强烈建议 先在 DEV 或 QA 等较低级别环境中测试配置变更,再应用到生产环境。

多个 MQTT 目标

你可以在顶层键后为每组相关 MQTT 设置追加一个唯一标识符 _ID,以指定多个 MQTT 服务端点。 例如,以下命令分别将两个不同的 MQTT 服务端点设置为 PRIMARYSECONDARY

环境变量
export MINIO_NOTIFY_MQTT_ENABLE_PRIMARY="on"
export MINIO_NOTIFY_MQTT_BROKER_PRIMARY="tcp://user:password@mqtt-endpoint.example.net:1883"

export MINIO_NOTIFY_MQTT_ENABLE_SECONDARY="on"
export MINIO_NOTIFY_MQTT_BROKER_SECONDARY="tcp://user:password@mqtt-endpoint.example.net:1883"
配置项
mc admin config set notify_mqtt:primary \
   broker="tcp://endpoint:port" \
   topic="minio/bucket-name/events/" \
   username="username" \
   password="password" \
   [ARGUMENT="VALUE"] ... \

mc admin config set notify_mqtt:secondary \
   broker="tcp://endpoint:port" \
   topic="minio/bucket-name/events/" \
   username="username" \
   password="password" \
   [ARGUMENT="VALUE"] ... \

在这些设置中,MINIO_NOTIFY_MQTT_ENABLE_PRIMARY 表示该环境变量与 ID 为 PRIMARY 的 MQTT 服务端点关联。

设置

启用

必填

MINIO_NOTIFY_MQTT_ENABLE

envvar

指定 on 以启用将存储桶通知发布到 MQTT 端点。

默认为 off

notify_mqtt

mc-conf

用于定义 MQTT server/broker 端点的顶层配置键,可用于 MinIO 存储桶通知

使用 mc admin config set 设置或更新 MQTT server/broker 端点。 每个端点都 必须 包含以下参数:

  • broker
  • topic
  • username 如果 MQTT server/broker 不强制认证/授权,则为可选
  • password 如果 MQTT server/broker 不强制认证/授权,则为可选

其他可选参数请以空白字符(" ")分隔的列表形式指定。

mc admin config set notify_mqtt \
   broker="tcp://endpoint:port" \
   topic="minio/bucket-name/events/" \
   username="username" \
   password="password" \
   [ARGUMENT="VALUE"] ... \

Broker

必填

MINIO_NOTIFY_MQTT_BROKER

envvar

notify_mqtt broker

mc-conf

指定 MQTT server/broker 端点。 MinIO 支持通过 TCP、TLS 或 Websocket 连接到 server/broker URL。 例如:

  • tcp://mqtt.example.net:1883
  • tls://mqtt.example.net:1883
  • ws://mqtt.example.net:1883
说明

变更: RELEASE.2023-05-27T05-56-19Z

在添加目标之前,如果指定的 URL 可解析且可达, MinIO 会先检查其健康状态。 如果现有目标处于离线状态,MinIO 也不再阻止添加新的通知目标。

Topic

必填

MINIO_NOTIFY_MQTT_TOPIC

envvar

notify_mqtt topic

mc-conf

指定 MQTT topic 名称,用于关联 MinIO 发布到 MQTT 端点的事件。

Username

如果 MQTT server/broker 强制认证/授权,则必填

MINIO_NOTIFY_MQTT_USERNAME

envvar

notify_mqtt username

mc-conf

指定 MinIO 用于向 MQTT server/broker 进行身份认证的 MQTT 用户名。

Password

如果 MQTT server/broker 强制认证/授权,则必填

MINIO_NOTIFY_MQTT_PASSWORD

envvar

notify_mqtt password

mc-conf

指定 MinIO 用于向 MQTT server/broker 进行身份认证的 MQTT 用户名对应的密码。

说明

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

作为 mc admin config get 返回结果的一部分时,MinIO 会对该值进行脱敏处理。

服务质量(QoS)

可选

MINIO_NOTIFY_MQTT_QOS

envvar

notify_mqtt qos

mc-conf

指定已发布事件的 Quality of Service 优先级。

默认为 0

Keep Alive 间隔

可选

MINIO_NOTIFY_MQTT_KEEP_ALIVE_INTERVAL

envvar

notify_mqtt keep_alive_interval

mc-conf

指定 MQTT 连接的 keep-alive 间隔。MinIO 支持以下时间单位:

  • s - 秒,例如 “60s”
  • m - 分钟,例如 “60m”
  • h - 小时,例如 “24h”
  • d - 天,例如 “7d”

重连间隔

可选

MINIO_NOTIFY_MQTT_RECONNECT_INTERVAL

envvar

notify_mqtt reconnect_interval

mc-conf

指定 MQTT 连接的重连间隔。MinIO 支持以下时间单位:

  • s - 秒,例如 “60s”
  • m - 分钟,例如 “60m”
  • h - 小时,例如 “24h”
  • d - 天,例如 “7d”

队列目录

可选

MINIO_NOTIFY_MQTT_QUEUE_DIR

envvar

notify_mqtt queue_dir

mc-conf

指定目录路径以启用 MinIO 的持久化事件存储,用于保存未投递消息,例如 /opt/minio/events

当 MQTT server/broker 离线时,MinIO 会将未投递事件存储在指定位置;连接恢复后会重放这些已存储事件。

队列上限

可选

MINIO_NOTIFY_MQTT_QUEUE_LIMIT

envvar

notify_mqtt queue_limit

mc-conf

指定未投递消息的最大上限。 默认为 100000

注释

可选

MINIO_NOTIFY_MQTT_COMMENT

envvar

notify_mqtt comment

mc-conf

指定与 MQTT 配置关联的注释。

12.1.6.5 - MySQL 通知设置

本页记录了将 MySQL 服务配置为 存储桶通知 目标的相关设置。 有关如何使用这些设置的教程,请参阅 将事件发布到 MySQL

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

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

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

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

警告

重要

每个配置项都会控制 MinIO 的基础行为和功能。 MinIO 强烈建议 先在 DEV 或 QA 等较低级别环境中测试配置变更,再应用到生产环境。

多个 MySQL 目标

你可以在顶层键后追加唯一标识符 _ID,为每组相关的 MySQL 设置指定多个 MySQL 服务端点。

示例

以下命令分别将两个不同的 MySQL 服务端点设置为 PRIMARYSECONDARY

export MINIO_NOTIFY_MYSQL_ENABLE_PRIMARY="on"
export MINIO_NOTIFY_MYSQL_DSN_STRING_PRIMARY="username:password@tcp(mysql.example.com:3306)/miniodb"
export MINIO_NOTIFY_MYSQL_TABLE_PRIMARY="minioevents"
export MINIO_NOTIFY_MYSQL_FORMAT_PRIMARY="namespace"

export MINIO_NOTIFY_MYSQL_ENABLE_SECONDARY="on"
export MINIO_NOTIFY_MYSQL_DSN_STRING_SECONDARY="username:password@tcp(mysql.example.com:3306)/miniodb"
export MINIO_NOTIFY_MYSQL_TABLE_SECONDARY="minioevents"
export MINIO_NOTIFY_MYSQL_FORMAT_SECONDARY="namespace"

在这些设置中,MINIO_NOTIFY_MYSQL_ENABLE_PRIMARY 表示该环境变量关联到 ID 为 PRIMARY 的 MySQL 服务端点。

mc admin config set notify_mysql:primary \
   dsn_string="username:password@tcp(mysql.example.com:3306)/miniodb"
   table="minioevents" \
   format="namespace" \
   [ARGUMENT=VALUE ...]

mc admin config set notify_mysql:secondary \
   dsn_string="username:password@tcp(mysql.example.com:3306)/miniodb"
   table="minioevents" \
   format="namespace" \
   [ARGUMENT=VALUE ...]

设置

启用

必需

MINIO_NOTIFY_MYSQL_ENABLE

envvar

指定 on 以启用将存储桶通知发布到 MySQL 服务端点。

默认为 off

若设置为 on,则还必须指定以下环境变量:

notify_mysql

mc-conf

用于定义 MySQL 服务端点以配合 MinIO bucket notifications 使用的顶层配置键。

使用 mc admin config set 设置或更新 MySQL 服务端点。 每个目标都 必需 以下参数:

其他可选参数请以空白字符(" ")分隔列表形式指定。

mc admin config set notify_mysql \
  dsn_string="username:password@tcp(mysql.example.com:3306)/miniodb"
  table="minioevents" \
  format="namespace" \
  [ARGUMENT="VALUE"] ... \

数据源名称(DSN)字符串

必需

MINIO_NOTIFY_MYSQL_DSN_STRING

envvar

notify_mysql dsn_string

mc-conf

指定 MySQL 服务端点的数据源名称(DSN)。MinIO 期望使用以下格式:

<user>:<password>@tcp(<host>:<port>)/<database>

例如:

"username:password@tcp(mysql.example.com:3306)/miniodb"

说明

变更: RELEASE.2023-05-27T05-56-19Z

在添加目标之前,如果指定的 URL 可解析且可达, MinIO 会先检查其健康状态。 如果现有目标处于离线状态,MinIO 也不再阻止添加新的通知目标。

必需

MINIO_NOTIFY_MYSQL_TABLE

envvar

notify_mysql table

mc-conf

指定 MinIO 发布事件通知到的 MySQL 表名。

格式

必需

MINIO_NOTIFY_MYSQL_FORMAT

envvar

notify_mysql format

mc-conf

指定写入 MySQL 服务端点的事件数据格式。 MinIO 支持以下取值:

namespace

对于每个存储桶事件,MinIO 会创建一个 JSON 文档,将事件中的存储桶和对象名称作为文档 ID,并将实际事件作为文档体的一部分。 对该对象的后续更新会修改该对象在表中的现有条目。 同样,删除该对象也会删除对应的表条目。

access

对于每个存储桶事件,MinIO 会创建一个包含事件详情的 JSON 文档,并以 MySQL 生成的随机 ID 追加到表中。 对对象的后续更新会产生新的索引条目,且现有条目保持不变。

最大打开连接数

可选

MINIO_NOTIFY_MYSQL_MAX_OPEN_CONNECTIONS

envvar

notify_mysql max_open_connections

mc-conf

指定与 MySQL 数据库建立的最大打开连接数。

默认为 2

队列目录

可选

MINIO_NOTIFY_MYSQL_QUEUE_DIR

envvar

notify_mysql queue_dir

mc-conf

指定目录路径,以启用 MinIO 对未投递消息的持久化事件存储,例如 /opt/minio/events

当 MySQL 服务器/代理离线时,MinIO 会将未投递事件存储在指定位置;连接恢复后会重放这些已存储事件。

队列上限

可选

MINIO_NOTIFY_MYSQL_QUEUE_LIMIT

envvar

notify_mysql queue_limit

mc-conf

指定未投递消息的最大上限。默认为 100000

注释

可选

MINIO_NOTIFY_MYSQL_COMMENT

envvar

notify_mysql comment

mc-conf

指定与 MySQL 配置关联的注释。

12.1.6.6 - NATS 通知设置

说明

NATS Streaming 已弃用

NATS Streaming 已弃用。 请迁移到 JetStream

相关的 MinIO 配置选项和环境变量也已弃用。

本页面说明了将 NATS 服务配置为 存储桶通知 目标的设置。 有关如何使用这些设置的教程,请参见 将事件发布到 NATS

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

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

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

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

警告

重要

每个配置项都会控制 MinIO 的基础行为和功能。 MinIO 强烈建议 先在 DEV 或 QA 等较低级别环境中测试配置变更,再应用到生产环境。

多个 NATS 目标

你可以在顶层键后追加唯一标识符 _ID,为每组相关的 NATS 设置指定多个 NATS 服务端点。

示例

例如,以下命令分别将两个不同的 NATS 服务端点设置为 PRIMARYSECONDARY

export MINIO_NOTIFY_NATS_ENABLE_PRIMARY="on"
export MINIO_NOTIFY_NATS_ADDRESS_PRIMARY="nats-endpoint.example.net:4222"

export MINIO_NOTIFY_NATS_ENABLE_SECONDARY="on"
export MINIO_NOTIFY_NATS_ADDRESS_SECONDARY="nats-endpoint.example.net:4222"

在这些设置中,MINIO_NOTIFY_NATS_ENABLE_PRIMARY 表示该环境变量关联到 ID 为 PRIMARY 的 NATS 服务端点。

mc admin config set notify_nats:primary \
   address="nats-endpoint.example.com:4222" \
   subject="minioevents" \
   [ARGUMENT=VALUE ...]

mc admin config set notify_nats:secondary \
   address="nats-endpoint.example.com:4222" \
   subject="minioevents" \
   [ARGUMENT=VALUE ...]

设置

启用

必填

MINIO_NOTIFY_NATS_ENABLE

envvar

指定 on 以启用向 NATS 服务端点发布存储桶通知。

默认为 off

notify_nats

mc-conf

用于定义 NATS 服务端点并将其用于 MinIO bucket notifications 的顶层配置键。

使用 mc admin config set 设置或更新 NATS 服务端点。 对于每个目标,addresssubject 参数均为 必填。 其他可选参数请使用空白字符(" ")分隔的列表指定。

mc admin config set notify_nats \
  address="nats-endpoint.example.com:4222" \
  subject="minioevents" \
  [ARGUMENT="VALUE"] ... \

地址

必填

MINIO_NOTIFY_NATS_ADDRESS

envvar

notify_nats address

mc-conf

指定 MinIO 发布存储桶事件到的 NATS 服务端点。 例如:nats-endpoint.example.com:4222

说明

变更: RELEASE.2023-05-27T05-56-19Z

在添加目标之前,如果指定的 URL 可解析且可达, MinIO 会先检查其健康状态。 如果现有目标处于离线状态,MinIO 也不再阻止添加新的通知目标。

Subject

必填

MINIO_NOTIFY_NATS_SUBJECT

envvar

notify_nats subject

mc-conf

指定 MinIO 在 NATS 端点上关联已发布事件的订阅。

用户名

可选

MINIO_NOTIFY_NATS_USERNAME

envvar

notify_nats username

mc-conf

指定连接到 NATS 服务端点时使用的用户名。

密码

可选

MINIO_NOTIFY_NATS_PASSWORD

envvar

notify_nats password

mc-conf

指定连接到 NATS 服务端点时使用的密码。

说明

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

MinIO 在作为 mc admin config get 返回结果的一部分时会对该值进行脱敏。

Token

可选

MINIO_NOTIFY_NATS_TOKEN

envvar

notify_nats token

mc-conf

指定连接到 NATS 服务端点时使用的 token。

说明

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

MinIO 在作为 mc admin config get 返回结果的一部分时会对该值进行脱敏。

用户凭证文件

可选

MINIO_NOTIFY_NATS_USER_CREDENTIALS

envvar

notify_nats user_credentials

mc-conf

指定用于连接 NATS 服务端点的 user credentials file

TLS

可选

MINIO_NOTIFY_NATS_TLS

envvar

notify_nats tls

mc-conf

指定 on 以启用到 NATS 服务端点的 TLS 连接。

TLS Skip Verify

可选

MINIO_NOTIFY_NATS_TLS_SKIP_VERIFY

envvar

notify_nats tls_skip_verify

mc-conf

启用或禁用对 NATS 服务端点 TLS 证书的 TLS 校验。

  • 指定 on 以禁用 TLS 校验(默认)。
  • 指定 off 以启用 TLS 校验。

Ping Interval

可选

MINIO_NOTIFY_NATS_PING_INTERVAL

envvar

notify_nats ping_interval

mc-conf

指定客户端向 NATS 服务器发送 ping 的时间间隔。 MinIO 支持以下时间单位:

  • s - 秒,"60s"
  • m - 分钟,"5m"
  • h - 小时,"1h"
  • d - 天,"1d"

Jetstream

可选

MINIO_NOTIFY_NATS_JETSTREAM

envvar

notify_nats jetstream

mc-conf

指定 on 以启用 JetStream 支持,将事件流式传输到 NATS JetStream 服务端点。

Streaming

已弃用

可选

MINIO_NOTIFY_NATS_STREAMING

envvar

notify_nats streaming

mc-conf

指定 on 以启用向 NATS 服务端点异步发布事件。

Streaming Async

已弃用

可选

MINIO_NOTIFY_NATS_STREAMING_ASYNC

envvar

notify_nats streaming_async

mc-conf

指定 on 以启用向 NATS 服务端点异步发布事件。

Max ACK Responses In Flight

已弃用

可选

MINIO_NOTIFY_NATS_STREAMING_MAX_PUB_ACKS_IN_FLIGHT

envvar

notify_nats streaming_max_pub_acks_in_flight

mc-conf

指定在等待 NATS 服务端点 ACK 响应之前可发布的消息数量。

Streaming Cluster ID

已弃用

可选

MINIO_NOTIFY_NATS_STREAMING_CLUSTER_ID

envvar

notify_nats streaming_cluster_id

mc-conf

指定 NATS Streaming 集群的唯一 ID。

Cert Authority

可选

MINIO_NOTIFY_NATS_CERT_AUTHORITY

envvar

notify_nats cert_authority

mc-conf

指定用于签署 NATS 服务端点 TLS 证书的 Certificate Authority 证书链路径。

Client Cert

可选

MINIO_NOTIFY_NATS_CLIENT_CERT

envvar

notify_nats client_cert

mc-conf

指定用于执行到 NATS 服务端点 mTLS 认证的客户端证书路径。

Client Key

可选

MINIO_NOTIFY_NATS_CLIENT_KEY

envvar

notify_nats client_key

mc-conf

指定用于执行到 NATS 服务端点 mTLS 认证的客户端私钥路径。

Queue Directory

可选

MINIO_NOTIFY_NATS_QUEUE_DIR

envvar

notify_nats queue_dir

mc-conf

指定目录路径以启用 MinIO 对未投递消息的持久化事件存储,例如 /opt/minio/events

当 NATS server/broker 离线时,MinIO 会将未投递事件存储在指定存储中,并在连接恢复后重放已存储事件。

Queue Limit

可选

MINIO_NOTIFY_NATS_QUEUE_LIMIT

envvar

notify_nats queue_limit

mc-conf

指定未投递消息的最大上限。 默认为 100000

Comment

可选

MINIO_NOTIFY_NATS_COMMENT

envvar

notify_nats comment

mc-conf

指定与 NATS 配置关联的注释。

12.1.6.7 - NSQ 通知设置

本页面记录了将 NSQ 服务配置为 存储桶通知 目标时所使用的设置。 有关如何使用这些设置的教程,请参阅 将事件发布到 NSQ

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

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

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

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

警告

重要

每个配置项都会控制 MinIO 的基础行为和功能。 MinIO 强烈建议 先在 DEV 或 QA 等较低级别环境中测试配置变更,再应用到生产环境。

多个 NSQ 目标

你可以通过在每组相关 NSQ 设置的顶层键末尾附加唯一标识符 _ID,指定多个 NSQ 服务端点。 例如,以下命令分别将两个不同的 NSQ 服务端点设置为 PRIMARYSECONDARY

环境变量
export MINIO_NOTIFY_NSQ_ENABLE_PRIMARY="on"
export MINIO_NOTIFY_NSQ_NSQD_ADDRESS_PRIMARY="https://user:password@nsq-endpoint.example.net:9200"
export MINIO_NOTIFY_NSQ_TOPIC_PRIMARY="bucketevents"

export MINIO_NOTIFY_NSQ_ENABLE_SECONDARY="on"
export MINIO_NOTIFY_NSQ_NSQD_ADDRESS_SECONDARY="https://user:password@nsq-endpoint.example.net:9200"
export MINIO_NOTIFY_NSQ_TOPIC_SECONDARY="bucketevents"
配置项
mc admin config set notify_nsq:primary \
   nsqd_address="ENDPOINT" \
   topic="<string>" \
   [ARGUMENT="VALUE"] ... \

mc admin config set notify_nsq:secondary \
   nsqd_address="ENDPOINT" \
   topic="<string>" \
   [ARGUMENT="VALUE"] ... \

设置

启用

必填

MINIO_NOTIFY_NSQ_ENABLE

envvar

指定 on 以启用将存储桶通知发布到 NSQ 端点。

notify_nsq

mc-conf

用于定义 NSQ server/broker 端点的顶层配置键,供 MinIO 存储桶通知 使用。

使用 mc admin config set 设置或更新 NSQ server/broker 端点。 每个端点都 必须 包含以下参数:

其他可选参数以空白字符(" ")分隔的列表形式指定。

mc admin config set notify_nsq                          \
   nsqd_address="https://nsq-endpoint.example.net:4150" \
   topic="<string>"                                     \
   [ARGUMENT="VALUE"] ...

NSQ Daemon 服务器地址

必填

MINIO_NOTIFY_NSQ_NSQD_ADDRESS

envvar

notify_nsq nsqd_address

mc-conf

指定 NSQ Daemon 运行所在的 NSQ 服务器地址。 例如:

https://nsq-endpoint.example.net:4150

说明

变更: RELEASE.2023-05-27T05-56-19Z

在添加目标之前,如果指定的 URL 可解析且可达, MinIO 会先检查其健康状态。 如果现有目标处于离线状态,MinIO 也不再阻止添加新的通知目标。

主题

必填

MINIO_NOTIFY_NSQ_TOPIC

envvar

notify_nsq topic

mc-conf

指定 MinIO 向 broker 发布事件时使用的 NSQ topic 名称。

TLS

可选

MINIO_NOTIFY_NSQ_TLS

envvar

notify_nsq tls

mc-conf

指定 on 以启用到 NSQ service broker 的 TLS 连接。

TLS 跳过校验

可选

MINIO_NOTIFY_NSQ_TLS_SKIP_VERIFY

envvar

notify_nsq tls_skip_verify

mc-conf

启用或禁用对 NSQ service broker TLS 证书的 TLS 校验。

  • 指定 on 可禁用 TLS 校验(默认)。
  • 指定 off 可启用 TLS 校验。

队列目录

可选

MINIO_NOTIFY_NSQ_QUEUE_DIR

envvar

notify_nsq queue_dir

mc-conf

指定目录路径以启用 MinIO 对未投递消息的持久化事件存储,例如 /opt/minio/events

当 NSQ server/broker 离线时,MinIO 会将未投递事件存储在指定存储中,并在连接恢复后重放这些已存储事件。

队列上限

可选

MINIO_NOTIFY_NSQ_QUEUE_LIMIT

envvar

notify_nsq queue_limit

mc-conf

指定未投递消息的最大上限。 默认值为 100000

备注

可选

MINIO_NOTIFY_NSQ_COMMENT

envvar

notify_nsq comment

mc-conf

指定与 NSQ 配置关联的备注。

12.1.6.8 - PostgreSQL 通知设置

本页记录了将 PostgreSQL 服务配置为 存储桶通知 目标的设置。 有关如何使用这些设置的教程,请参阅 将事件发布到 PostgreSQL

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

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

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

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

警告

重要

每个配置项都会控制 MinIO 的基础行为和功能。 MinIO 强烈建议 先在 DEV 或 QA 等较低级别环境中测试配置变更,再应用到生产环境。

多个 PostgreSQL 目标

你可以通过在顶层键后追加唯一标识符 _ID,为每组相关 PostgreSQL 设置指定多个 PostgreSQL 服务端点。 例如,以下命令分别将两个不同的 PostgreSQL 服务端点设置为 PRIMARYSECONDARY

环境变量
export MINIO_NOTIFY_POSTGRES_ENABLE_PRIMARY="on"
export MINIO_NOTIFY_POSTGRES_CONNECTION_STRING_PRIMARY="host=postgresql-endpoint.example.net port=4222..."
export MINIO_NOTIFY_POSTGRES_TABLE_PRIMARY="minioevents"
export MINIO_NOTIFY_POSTGRES_FORMAT_PRIMARY="namespace"

export MINIO_NOTIFY_POSTGRES_ENABLE_SECONDARY="on"
export MINIO_NOTIFY_POSTGRES_CONNECTION_STRING_SECONDARY="host=postgresql-endpoint.example.net port=4222..."
export MINIO_NOTIFY_POSTGRES_TABLE_SECONDARY="minioevents"
export MINIO_NOTIFY_POSTGRES_FORMAT_SECONDARY="namespace"
配置设置
mc admin config set notify_postgres:primary \
   connection_string="host=postgresql.example.com port=5432..."
   table="minioevents" \
   format="namespace" \
   [ARGUMENT=VALUE ...]

mc admin config set notify_postgres:secondary \
   connection_string="host=postgresql.example.com port=5432..."
   table="minioevents" \
   format="namespace" \
   [ARGUMENT=VALUE ...]

在这些设置中,MINIO_NOTIFY_POSTGRES_ENABLE_PRIMARY 表示该环境变量关联到 ID 为 PRIMARY 的 PostgreSQL 服务端点。

设置

启用

必填

MINIO_NOTIFY_POSTGRES_ENABLE

envvar

指定 on 以启用将存储桶通知发布到 PostgreSQL 服务端点。

默认为 off

如果设置为 on,则还必须指定以下环境变量:

notify_postgres

mc-conf

用于定义 PostgreSQL 服务端点的顶层配置键,可用于 MinIO bucket notifications

使用 mc admin config set 设置或更新 PostgreSQL 服务端点。 每个目标都 必须 提供以下参数:

其他可选参数以空白字符(" ")分隔的列表形式指定。

mc admin config set notify_postgres                            \
  connection_string="host=postgresql.example.com port=5432..." \
  table="minioevents"                                          \
  format="namespace"                                           \
  [ARGUMENT="VALUE"] ...

连接字符串

必填

MINIO_NOTIFY_POSTGRES_CONNECTION_STRING

envvar

notify_postgres connection_string

mc-conf

指定 PostgreSQL 服务端点的 URI connection string。 MinIO 支持 key=value 格式的 PostgreSQL 连接字符串。 例如:

"host=https://postgresql.example.com port=5432 ..."

有关受支持 PostgreSQL 连接字符串参数的完整文档,请参阅 PostgreSQL Connection Strings documentation

说明

变更: RELEASE.2023-05-27T05-56-19Z

在添加目标之前,如果指定的 URL 可解析且可达, MinIO 会先检查其健康状态。 如果现有目标处于离线状态,MinIO 也不再阻止添加新的通知目标。

必填

MINIO_NOTIFY_POSTGRES_TABLE

envvar

notify_postgres table

mc-conf

指定 MinIO 发布事件通知的 PostgreSQL 表名称。

格式

必填

MINIO_NOTIFY_POSTGRES_FORMAT

envvar

notify_postgres format

mc-conf

指定写入 PostgreSQL 服务端点的事件数据格式。 MinIO 支持以下取值:

namespace

对于每个存储桶事件,MinIO 会创建一个 JSON 文档,使用事件中的存储桶和对象名称作为文档 ID,并将实际事件作为文档内容的一部分。 对该对象的后续更新会修改该对象在表中的现有条目。 同样,删除该对象也会删除对应的表条目。

access

对于每个存储桶事件,MinIO 会创建包含事件详情的 JSON 文档,并以 PostgreSQL 生成的随机 ID 将其追加到表中。 对对象的后续更新会产生新的索引条目,现有条目保持不变。

最大打开连接数

可选

MINIO_NOTIFY_POSTGRES_MAX_OPEN_CONNECTIONS

envvar

notify_postgres max_open_connections

mc-conf

指定与 PostgreSQL 数据库建立的最大打开连接数。

默认为 2

队列目录

可选

MINIO_NOTIFY_POSTGRES_QUEUE_DIR

envvar

notify_postgres queue_dir

mc-conf

指定目录路径以启用 MinIO 的持久化事件存储,用于保存未投递消息,例如 /opt/minio/events

当 PostgreSQL server/broker 离线时,MinIO 会将未投递事件存储在指定存储中,并在连接恢复后重放这些已存储事件。

队列上限

可选

MINIO_NOTIFY_POSTGRES_QUEUE_LIMIT

envvar

notify_postgres queue_limit

mc-conf

指定未投递消息的数量上限。 默认为 100000

注释

可选

MINIO_NOTIFY_POSTGRES_COMMENT

envvar

notify_postgres comment

mc-conf

指定与 PostgreSQL 配置关联的注释。

12.1.6.9 - Redis 通知设置

本页记录了将 Redis 服务配置为 存储桶通知 目标所需的设置。 有关如何使用这些设置的教程,请参阅 将事件发布到 Redis

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

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

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

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

警告

重要

每个配置项都会控制 MinIO 的基础行为和功能。 MinIO 强烈建议 先在 DEV 或 QA 等较低级别环境中测试配置变更,再应用到生产环境。

多个 Redis 目标

你可以通过在每组相关 Redis 设置的顶层键末尾追加唯一标识符 _ID 来指定多个 Redis 服务端点。 例如,以下命令分别将两个不同的 Redis 服务端点设置为 PRIMARYSECONDARY

环境变量
export MINIO_NOTIFY_REDIS_ENABLE_PRIMARY="on"
export MINIO_NOTIFY_REDIS_ADDRESS_PRIMARY="redis-endpoint.example.net:9200"
export MINIO_NOTIFY_REDIS_KEY_PRIMARY="bucketevents"
export MINIO_NOTIFY_REDIS_FORMAT_PRIMARY="namespace"


export MINIO_NOTIFY_REDIS_ENABLE_SECONDARY="on"
export MINIO_NOTIFY_REDIS_REDIS_ADDRESS_SECONDARY="redis-endpoint2.example.net:9200"
export MINIO_NOTIFY_REDIS_KEY_SECONDARY="bucketevents"
export MINIO_NOTIFY_REDIS_FORMAT_SECONDARY="namespace"
配置设置
mc admin config set notify_redis:primary              \
   address="redis-endpoint.example.net:9200"  \
   key="bucketevents"                                 \
   format="namespace"                                 \
   [ARGUMENT="VALUE"] ...                             \

mc admin config set notify_redis:secondary            \
   address="redis-endpoint2.example.net:9200" \
   key="bucketevents"                                 \
   format="namespace"                                 \
   [ARGUMENT="VALUE"] ...

设置

启用

必需

MINIO_NOTIFY_REDIS_ENABLE

envvar

指定 on 以启用将存储桶通知发布到 Redis 服务端点。

默认为 off

如果设置为 on,还必须指定以下附加环境变量:

notify_redis

mc-conf

用于定义 Redis server/broker 端点并供 MinIO bucket notifications 使用的顶层配置键。

使用 mc admin config set 设置或更新 Redis server/broker 端点。 对于每个端点,以下参数为 必需

将其他可选参数指定为以空白字符(" ")分隔的列表。

mc admin config set notify_redis \
   address="ENDPOINT" \
   key="<string>" \
   format="<string>" \
   [ARGUMENT="VALUE"] ... \

地址

必需

MINIO_NOTIFY_REDIS_ADDRESS

envvar

notify_redis address

mc-conf

指定 MinIO 发布存储桶事件的 Redis 服务端点。 例如:redis.example.com:6369

说明

变更: RELEASE.2023-05-27T05-56-19Z

在添加目标之前,如果指定的 URL 可解析且可达, MinIO 会先检查其健康状态。 如果现有目标处于离线状态,MinIO 也不再阻止添加新的通知目标。

必需

MINIO_NOTIFY_REDIS_KEY

envvar

notify_redis key

mc-conf

指定用于存储和更新事件的 Redis 键。 如果该键不存在,Redis 会自动创建。

格式

必需

MINIO_NOTIFY_REDIS_FORMAT

envvar

notify_redis format

mc-conf

指定写入 Redis 服务端点的事件数据格式。 MinIO 支持以下取值:

namespace

对于每个存储桶事件,MinIO 会创建一个 JSON 文档,以事件中的存储桶名和对象名作为文档 ID,并将实际事件作为文档体的一部分。 对该对象的后续更新会修改该对象现有的索引条目。 同样,删除对象也会删除对应的索引条目。

access

对于每个存储桶事件,MinIO 会创建一个包含事件详情的 JSON 文档,并以 Redis 生成的随机 ID 将其追加到该键。 对对象的后续更新会产生新的索引条目,现有条目保持不变。

密码

可选

MINIO_NOTIFY_REDIS_PASSWORD

envvar

notify_redis password

mc-conf

指定 Redis 服务器的密码。

说明

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

当该值作为 mc admin config get 返回结果的一部分时,MinIO 会对其进行脱敏。

用户

可选

说明

新增: RELEASE.2024-03-21T23-13-43Z

MINIO_NOTIFY_REDIS_USER

envvar

notify_redis user

mc-conf

指定 Redis 服务器的用户。

队列目录

可选

MINIO_NOTIFY_REDIS_QUEUE_DIR

envvar

notify_redis queue_dir

mc-conf

指定目录路径以启用 MinIO 的持久化事件存储,用于保存未投递消息,例如 /opt/minio/events

当 Redis server/broker 离线时,MinIO 会将未投递事件存储到指定存储中;连接恢复后,会重放这些已存储事件。

队列上限

可选

MINIO_NOTIFY_REDIS_QUEUE_LIMIT

envvar

notify_redis queue_limit

mc-conf

指定未投递消息的最大上限。 默认为 100000

注释

可选

MINIO_NOTIFY_REDIS_COMMENT

envvar

notify_redis comment

mc-conf

指定与 Redis 配置关联的注释。

12.1.6.10 - Webhook 服务通知设置

本页记录了将 Webhook 服务配置为 存储桶通知 目标所需的设置。 有关如何使用这些设置的教程,请参见 将事件发布到 Webhook

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

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

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

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

警告

重要

每个配置项都会控制 MinIO 的基础行为和功能。 MinIO 强烈建议 先在 DEV 或 QA 等较低级别环境中测试配置变更,再应用到生产环境。

多个 Webhook 服务目标

可通过在顶层键后为每组相关 Webhook 设置追加唯一标识符 _ID 来指定多个 Webhook 服务端点。 例如,以下命令分别将两个不同的 Webhook 服务端点设置为 PRIMARYSECONDARY

环境变量
export MINIO_NOTIFY_WEBHOOK_ENABLE_PRIMARY="on"
export MINIO_NOTIFY_WEBHOOK_ENDPOINT_PRIMARY="https://webhook1.example.net"

export MINIO_NOTIFY_WEBHOOK_ENABLE_SECONDARY="on"
export MINIO_NOTIFY_WEBHOOK_ENDPOINT_SECONDARY="https://webhook1.example.net"
配置设置
mc admin config set notify_webhook:primary \
   endpoint="https://webhook1.example.net"
   [ARGUMENT=VALUE ...]

mc admin config set notify_webhook:secondary \
   endpoint="https://webhook2.example.net
   [ARGUMENT=VALUE ...]

设置

启用

必需

MINIO_NOTIFY_WEBHOOK_ENABLE

envvar

指定 on 以启用将存储桶通知发布到 Webhook 服务端点。

默认为 off

notify_webhook

mc-conf

用于定义 Webhook 服务端点的顶层配置键,可用于 MinIO 存储桶通知

使用 mc admin config set 设置或更新 Webhook 服务端点。 endpoint 参数对每个目标均为 必需。 将其他可选参数指定为以空白字符(" ")分隔的列表。

mc admin config set notify_webhook \
  endpoint="https://webhook.example.net"
  [ARGUMENT="VALUE"] ... \

端点

必需

MINIO_NOTIFY_WEBHOOK_ENDPOINT

envvar

notify_webhook endpoint

mc-conf

指定 Webhook 服务的 URL。

说明

变更: RELEASE.2023-05-27T05-56-19Z

在添加目标之前,如果指定的 URL 可解析且可达, MinIO 会先检查其健康状态。 如果现有目标处于离线状态,MinIO 也不再阻止添加新的通知目标。

认证令牌

必需

MINIO_NOTIFY_WEBHOOK_AUTH_TOKEN

envvar

适用于该端点类型的认证令牌。 对于不需要认证的端点可省略。

为支持多种令牌类型,MinIO 会使用 完全按所给内容 的值来构造请求认证头。 根据端点要求,你可能需要包含额外信息。

例如,对于 Bearer 令牌,请在前面加上 Bearer

export MINIO_NOTIFY_WEBHOOK_AUTH_TOKEN_myendpoint="Bearer 1a2b3c4f5e"

请根据端点要求调整该值。 自定义认证格式可能类似如下:

export MINIO_NOTIFY_WEBHOOK_AUTH_TOKEN_xyz="ServiceXYZ 1a2b3c4f5e"

更多详情请查阅目标服务的文档。

notify_webhook auth_token

mc-conf

适用于该端点类型的认证令牌。 对于不需要认证的端点可省略。

为支持多种令牌类型,MinIO 会使用 完全按所给内容 的值来构造请求认证头。 根据端点要求,你可能需要包含额外信息。

例如,对于 Bearer 令牌,请在前面加上 Bearer

   mc admin config set myminio notify_webhook   \
   endpoint="https://webhook-1.example.net"  \
      auth_token="Bearer 1a2b3c4f5e"

请根据端点要求调整该值。 自定义认证格式可能类似如下:

   mc admin config set myminio notify_webhook   \
      endpoint="https://webhook-1.example.net"  \
      auth_token="ServiceXYZ 1a2b3c4f5e"

更多详情请查阅目标服务的文档。

说明

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

当该值作为 mc admin config get 的返回内容的一部分时,MinIO 会将其打码。

队列目录

可选

MINIO_NOTIFY_WEBHOOK_QUEUE_DIR

envvar

notify_webhook queue_dir

mc-conf

指定目录路径以启用 MinIO 针对未投递消息的持久化事件存储,例如 /opt/minio/events

当 Webhook 服务离线时,MinIO 会将未投递事件存储到指定存储中,并在连接恢复后重放这些已存储事件。

队列上限

可选

MINIO_NOTIFY_WEBHOOK_QUEUE_LIMIT

envvar

notify_webhook queue_limit

mc-conf

指定未投递消息的最大上限。 默认为 100000

客户端证书

可选

MINIO_NOTIFY_WEBHOOK_CLIENT_CERT

envvar

notify_webhook client_cert

mc-conf

指定用于向 Webhook 服务执行 mTLS 认证的客户端证书路径。

客户端密钥

可选

MINIO_NOTIFY_WEBHOOK_CLIENT_KEY

envvar

notify_webhook client_key

mc-conf

指定用于向 Webhook 服务执行 mTLS 认证的客户端私钥路径。

12.1.7 - 身份与访问管理设置

本节页面记录了用于配置 MinIO 与身份与访问管理(IAM)方案协同工作的相关设置。 MinIO 支持的每种 IAM 方法都对应一个独立的设置页面。

12.1.7.1 - Active Directory / LDAP 设置

本页面说明通过 Active Directory 或 LDAP 服务启用外部身份管理所需的设置。 有关使用这些设置的教程,请参见 配置 MinIO 使用 Active Directory / LDAP 进行认证

警告

重要

RELEASE.2023-05-26T23-31-54Z 版本中新增:

相比使用配置设置,优先使用 mc idp ldap 命令将 MinIO 配置为使用 Active Directory 或 LDAP 进行身份管理。

MinIO 建议使用 mc idp ldap 命令执行 LDAP 管理操作。 这些命令提供了更好的校验能力和附加功能,同时提供与 identity_ldap 配置键相同的设置。 有关 mc idp ldap 的使用教程,请参见 配置 MinIO 使用 Active Directory / LDAP 进行认证

identity_ldap 配置设置仍可用于现有脚本和其他工具。

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

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

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

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

警告

重要

每个配置项都会控制 MinIO 的基础行为和功能。 MinIO 强烈建议 先在 DEV 或 QA 等较低级别环境中测试配置变更,再应用到生产环境。

示例

MINIO_IDENTITY_LDAP_SERVER_ADDR="ldapserver.com:636"
说明

说明

srv_record_name 会自动识别端口。

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

identity_ldap

mc-conf

使用 mc admin config set 定义 LDAP 时,以下设置为必需项:

  • enabled
  • server_addr
  • lookup_bind_dn
  • lookup_bind_dn_password
  • user_dn_search_base_dn
  • user_dn_search_filter
mc admin config set identity_ldap                        \
   enabled="true"                                        \
   server_addr="ad-ldap.example.net/"                    \
   lookup_bind_dn="cn=miniolookupuser,dc=example,dc=net" \
   lookup_bind_dn_password="userpassword"                \
   user_dn_search_base_dn="dc=example,dc=net"            \
   user_dn_search_filter="(&(objectCategory=user)(sAMAccountName=%s))"

设置

服务器地址

必需

MINIO_IDENTITY_LDAP_SERVER_ADDR

envvar

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

ldapserver.com:636
说明

srv_record_name 会自动识别端口

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

identity_ldap server_addr

mc-conf

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

ldapserver.com:636
说明

srv_record_name 会自动识别端口

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

Lookup Bind DN

必需

MINIO_IDENTITY_LDAP_LOOKUP_BIND_DN

envvar

identity_ldap lookup_bind_dn

mc-conf

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

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

Lookup Bind 密码

必需

MINIO_IDENTITY_LDAP_LOOKUP_BIND_PASSWORD

envvar

identity_ldap lookup_bind_password

mc-conf

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

说明

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

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

用户 DN 搜索基准 DN

必需

MINIO_IDENTITY_LDAP_USER_DN_SEARCH_BASE_DN

envvar

identity_ldap user_dn_search_base_dn

mc-conf

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

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

例如:

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

支持 Lookup-Bind 模式。

用户 DN 搜索过滤器

必需

MINIO_IDENTITY_LDAP_USER_DN_SEARCH_FILTER

envvar

identity_ldap user_dn_search_filter

mc-conf

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

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

(userPrincipalName=%s)

用户 DN 属性

可选

MINIO_IDENTITY_LDAP_USER_DN_ATTRIBUTES

envvar

identity_ldap user_dn_attributes

mc-conf

说明

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

启用

可选

此设置没有环境变量选项。 请改用配置设置。

identity_ldap enabled

mc-conf

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

若为 false,应用程序将无法生成 STS 凭证,也无法通过已配置的提供者向 MinIO 进行身份验证。

默认为 true(即 “enabled”)。

组搜索过滤器

可选

MINIO_IDENTITY_LDAP_GROUP_SEARCH_FILTER

envvar

identity_ldap group_search_filter

mc-conf

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

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

例如:

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

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

在提供 AD/LDAP 组搜索过滤器时,应配置一个仅返回满足身份验证需求的最小相关组集合的过滤器。 返回大量组分配信息的过滤器会增加相关调用和资源消耗。 对大体积请求或响应体敏感的功能可能因此出现非预期行为。

组搜索基准 DN

可选

MINIO_IDENTITY_LDAP_GROUP_SEARCH_BASE_DN

envvar

identity_ldap group_search_base_dn

mc-conf

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

例如:

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

TLS 跳过校验

可选

MINIO_IDENTITY_LDAP_TLS_SKIP_VERIFY

envvar

identity_ldap tls_skip_verify

mc-conf

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

默认值为 off

服务器不安全模式

可选

MINIO_IDENTITY_LDAP_SERVER_INSECURE

envvar

identity_ldap server_insecure

mc-conf

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

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

默认值为 off

服务器 Start TLS

可选

MINIO_IDENTITY_LDAP_SERVER_STARTTLS

envvar

identity_ldap server_starttls

mc-conf

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

默认值为 off

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

SRV 记录名称

可选

说明

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

MINIO_IDENTITY_LDAP_SRV_RECORD_NAME

envvar

identity_ldap srv_record_name

mc-conf

指定适当的值,以允许 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_COMMENT

envvar

identity_ldap identity_ldap comment

mc-conf

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

12.1.7.2 - OpenID 身份管理设置

本页面记录了如何使用与 OpenID Connect (OIDC) 兼容的提供方来启用外部身份管理的相关设置。 有关如何使用这些设置的教程,请参见 OpenID Connect 访问管理

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

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

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

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

警告

重要

每个配置项都会控制 MinIO 的基础行为和功能。 MinIO 强烈建议 先在 DEV 或 QA 等较低级别环境中测试配置变更,再应用到生产环境。

示例

MINIO_IDENTITY_OPENID_CONFIG_URL="https://openid-provider.example.net/.well-known/openid-configuration"

identity_openid

mc-conf

使用 mc admin config set 设置或更新 OpenID 配置。 config_url 参数为 必需。 其他可选参数请以空白字符(" ")分隔的列表形式指定。

mc admin config set identity_openid                                               \
  config_url="https://openid-provider.example.net/.well-known/openid-configuration" \
  [ARGUMENT="VALUE"] ...

设置

配置 URL

必需

MINIO_IDENTITY_OPENID_CONFIG_URL

envvar

identity_openid config_url

mc-conf

指定与 OIDC 兼容的 provider 的 discovery document URL。

OIDC Discovery URL 通常类似于:

https://openid-provider.example.net/.well-known/openid-configuration

启用

可选

此设置没有环境变量选项。 请改用配置项。

identity_openid enabled

mc-conf

设置为 false 可禁用 OpenID 配置。

如果设置为 false,应用程序将无法使用已配置的提供方生成 STS 凭证或通过其他方式向 MinIO 认证。

默认值为 true(即“启用”)。

客户端 ID

可选

MINIO_IDENTITY_OPENID_CLIENT_ID

envvar

identity_openid client_id

mc-conf

指定 MinIO 在使用与 OIDC 兼容的 provider 验证用户凭证时 所使用的唯一公开标识符。

客户端密钥

可选

MINIO_IDENTITY_OPENID_CLIENT_SECRET

envvar

identity_openid client_secret

mc-conf

指定 MinIO 在使用与 OIDC 兼容的 provider 验证用户凭证时 所使用的 client secret。根据 provider 的不同,此字段可能是可选的。

说明

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

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

角色策略

可选

此设置与 Claim Name 设置互斥。

MINIO_IDENTITY_OPENID_ROLE_POLICY

envvar

identity_openid role_policy

mc-conf

指定逗号分隔的 策略名称 列表,用于该 provider 的所有认证请求 中的 RoleArn。指定的一个或多个策略必须已经存在于 MinIO Server 上。

要使用此 OIDC 配置,你必须在 STS 请求体中指定对应的 RoleArn

声明名称

可选

此设置与 Role Policy 设置互斥。

MINIO_IDENTITY_OPENID_CLAIM_NAME

envvar

identity_openid claim_name

mc-conf

指定 JWT Claim 的名称,MinIO 使用该 Claim 来识别应附加到已认证用户上的 策略

该 Claim 可以包含一个或多个逗号分隔的策略名称,以附加给用户。该 Claim 至少 必须包含一个策略,否则该用户在 MinIO server 上将没有任何权限。

默认值为 policy

声明前缀

可选

此设置已弃用,并已在 RELEASE.2024-07-13T01-46-15Z 起移除。 请改用 MINIO_IDENTITY_OPENID_CLAIM_NAME

MINIO_IDENTITY_OPENID_CLAIM_PREFIX

envvar

identity_openid claim_prefix

mc-conf

指定应用到所给 Claim 名称上的 JWT Claim 命名空间前缀。

显示名称

可选

MINIO_IDENTITY_OPENID_DISPLAY_NAME

envvar

identity_openid display_name

mc-conf

指定 MinIO Console 在登录页面上显示给用户的名称。

作用域

可选

MINIO_IDENTITY_OPENID_SCOPES

envvar

identity_openid scopes

mc-conf

指定逗号分隔的 scopes 列表。 默认使用 discovery document 中公布的 scopes。

重定向 URI

可选

此设置已弃用,并已在 RELEASE.2024-07-13T01-46-15Z 起移除。 请改用 MINIO_BROWSER_REDIRECT_URL

MINIO_IDENTITY_OPENID_REDIRECT_URI

envvar

identity_openid redirect_uri

mc-conf

警告

重要

该参数已在 RELEASE.2023-02-27T18-10-45Z 中移除。 请改用 MINIO_BROWSER_REDIRECT_URL 环境变量

MinIO Console 默认使用发起认证请求的节点主机名。 对于位于负载均衡器或反向代理之后的 MinIO 部署,请指定该字段,以确保 OIDC provider 将认证响应返回到正确的 MinIO Console URL。 其中应包含 Console 主机名、端口以及 /oauth_callback

http://minio.example.net:consoleport/oauth_callback

请确保在启动 MinIO Server 时使用 --console-address 选项,以设置固定的 Console 监听端口。 如果省略该选项,默认行为是在启动时随机选择端口号。

指定的 URI 必须 与 provider 上批准的某个 redirect / callback URI 匹配。 更多信息请参见 OpenID Authentication Request

动态 URI 重定向

可选

MINIO_IDENTITY_OPENID_REDIRECT_URI_DYNAMIC

envvar

identity_openid redirect_uri_dynamic

mc-conf

MinIO Console 默认会将发起认证请求的节点主机名作为重定向 URI 的一部分, 并将其提供给 OIDC provider。 对于位于使用轮询协议的负载均衡器之后的 MinIO 部署,这可能导致负载均衡器将响应 返回给与原始客户端不同的 MinIO 节点。

将此选项指定为 on,可让 MinIO Console 使用原始请求中的 Host 头来构造 传递给 OIDC provider 的重定向 URI。 默认值为 off

用户信息

可选

MINIO_IDENTITY_OPENID_CLAIM_USERINFO

envvar

identity_openid claim_userinfo

mc-conf

允许 MinIO 从已认证用户的 UserInfo Endpoint 获取 claims。

有效值为 onoff

提供方

可选

MINIO_IDENTITY_OPENID_VENDOR

envvar

identity_openid vendor

mc-conf

指定 OIDC Vendor,以启用该 vendor 的特定受支持行为。

支持以下值:

  • keycloak

Keycloak Realm

可选

此设置要求将 OpenID Vendor 设置定义为 keycloak

MINIO_IDENTITY_OPENID_KEYCLOAK_REALM

envvar

identity_openid keycloak_realm

mc-conf

指定用于 Keycloak Admin API 操作的 Keycloak Realm,例如 main

Keycloak 管理 URL

可选

此设置要求将 OpenID Vendor 设置定义为 keycloak

MINIO_IDENTITY_OPENID_KEYCLOAK_ADMIN_URL

envvar

identity_openid keycloak_admin_url

mc-conf

指定 Keycloak Admin API URL。 如果配置为定期校验已认证的 Keycloak 用户是否处于激活 / 存在状态,MinIO 可以 使用该 URL。 例如,https://keycloak-endpoint:port/admin/

注释

可选

MINIO_IDENTITY_OPENID_COMMENT

envvar

identity_openid comment

mc-conf

指定要附加到与 OIDC 兼容 provider 配置上的注释。

12.1.7.3 - Silo 身份管理插件设置

本页介绍如何通过 MinIO Identity Management Plugin 启用外部身份管理的相关设置。 有关如何使用这些设置的教程,请参阅 MinIO External Identity Management Plugin

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

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

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

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

警告

重要

每个配置项都会控制 MinIO 的基础行为和功能。 MinIO 强烈建议 先在 DEV 或 QA 等较低级别环境中测试配置变更,再应用到生产环境。

示例

配置 MinIO Identity Management Plugin 时,至少必须定义所有 必需 设置。 以下示例展示了最小必需配置。

MINIO_IDENTITY_PLUGIN_URL="https://authservice.example.net:8080/auth"
MINIO_IDENTITY_PLUGIN_ROLE_POLICY="ConsoleUser"

identity_plugin

mc-conf

使用 mc admin config set 创建或更新身份管理插件配置。 identity_plugin url 参数为必填项。 其他可选参数以空白字符(” “)分隔的列表形式指定。

mc admin config set identity_plugin                  \
   url="https://external-auth.example.net:8080/auth" \
   role_policy="consoleAdmin"                        \
   [ARGUMENT=VALUE] ...

设置

URL

必需

MINIO_IDENTITY_PLUGIN_URL

envvar

identity_plugin url

mc-conf

外部身份管理服务的 webhook endpoint (https://authservice.example.net:8080/auth)。

角色策略

必需

MINIO_IDENTITY_PLUGIN_ROLE_POLICY

envvar

identity_plugin role_policy

mc-conf

指定要分配给已认证用户的 MinIO 策略 列表,多个策略之间 使用逗号分隔。

启用

可选

此设置不提供环境变量选项。

identity_plugin enabled

mc-conf

设置为 false 以禁用身份提供方配置。

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

默认为 true 或 “enabled”。

令牌

可选

MINIO_IDENTITY_PLUGIN_TOKEN

envvar

identity_plugin token

mc-conf

提供给已配置 webhook endpoint 的认证令牌。

请以字符串形式指定受支持的 HTTP Authentication scheme, 例如 "Bearer TOKEN"。 MinIO 会通过 HTTP Authorization 头发送该令牌。

角色 ID

可选

MINIO_IDENTITY_PLUGIN_ROLE_ID

envvar

identity_plugin role_id

mc-conf

指定 MinIO 用于为该 identity manager 生成 ARN 的唯一 ID。 在生成 ARN 时,MinIO 会自动在指定 ID 前添加 idmp- 前缀。

如果省略此项,MinIO 会自动生成该 ID,并将完整 ARN 输出到 server 日志中。

注释

可选

MINIO_IDENTITY_PLUGIN_COMMENT

envvar

identity_plugin comment

mc-conf

指定要附加到身份配置上的注释。

12.1.7.4 - Silo 访问管理插件设置

本页说明如何配置 MinIO Access Management Plugin 以启用外部授权管理。 有关这些设置的使用教程,请参见 MinIO 外部访问管理插件

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

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

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

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

警告

重要

每个配置项都会控制 MinIO 的基础行为和功能。 MinIO 强烈建议 先在 DEV 或 QA 等较低级别环境中测试配置变更,再应用到生产环境。

示例

在设置 MinIO Access Management 插件时,至少必须定义所有 Required 设置。 此处示例展示了最小必需配置。

MINIO_POLICY_PLUGIN_URL="https://authzservice.example.net:8080/authz"

policy_plugin

mc-conf

使用 mc admin config set 命令创建或更新访问管理插件配置。 policy_plugin url 参数为必填。 其他可选参数请以空白字符(” “)分隔的列表形式指定。

mc admin config set policy_plugin                     \
   url="https://authzservice.example.net:8080/authz"  \
   [ARGUMENT=VALUE] ...

设置

URL

必需

MINIO_POLICY_PLUGIN_URL

envvar

policy_plugin url

mc-conf

外部访问管理服务的 webhook endpoint (https://authzservice.example.net:8080/authz)。

认证令牌

可选

MINIO_POLICY_PLUGIN_AUTH_TOKEN

envvar

policy_plugin auth_token

mc-conf

提供给已配置 webhook endpoint 的认证令牌。

请以字符串形式指定受支持的 HTTP Authentication scheme, 例如 "Bearer TOKEN"。 MinIO 会通过 HTTP Authorization 头发送该令牌。

HTTP2

可选

MINIO_POLICY_PLUGIN_ENABLE_HTTP2

envvar

policy_plugin enable_http2

mc-conf

为连接已配置的 webhook 服务启用实验性的 HTTP2 支持。

默认值为 off

注释

可选

MINIO_POLICY_PLUGIN_COMMENT

envvar

policy_plugin comment

mc-conf

指定要附加到外部访问管理配置上的注释。

12.1.8 - ILM 设置

本页面介绍用于控制 MinIO 进程 ILM(信息生命周期管理)的设置。

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

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

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

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

警告

重要

每个配置项都会控制 MinIO 的基础行为和功能。 MinIO 强烈建议 先在 DEV 或 QA 等较低级别环境中测试配置变更,再应用到生产环境。

过期 Worker

MINIO_ILM_EXPIRATION_WORKERS

envvar

ilm expiration_workers

mc-conf

说明

新增: MinIO

Server RELEASE.2024-03-03T17-50-39Z

设置用于 对象过期 的 worker 数量。 有效值范围为 1500

默认值为 100

12.1.9 - 密钥加密服务设置

MinIO Server 提供三组环境变量,用于管理 MinIO Server 与 Key Encryption Service (KES)、Key Management Service (KMS) 或静态密钥文件的交互方式。 这三组中只能定义一组。 如果定义了多种类型的环境变量组,MinIO 会返回错误。

说明

说明

这些设置不支持通过 mc admin config set 进行配置。

在启动或重启 MinIO 进程之前,请在宿主系统中定义其中任意一组环境变量。 有关如何定义环境变量,请参考操作系统文档。

警告

重要

每个配置项都会控制 MinIO 的基础行为和功能。 MinIO 强烈建议 先在 DEV 或 QA 等较低级别环境中测试配置变更,再应用到生产环境。

Key Encryption Service

定义以下变量以使用 Key Encryption Service (KES) 连接到 受支持的第三方 Key Management Service 提供商

MINIO_KMS_KES_ENDPOINT

envvar

MinIO Key Encryption Service (KES) 进程用于支持 SSE-S3 和 MinIO 后端加密操作的 endpoint。 多个 KES endpoint 使用 , 分隔。

MINIO_KMS_KES_KEY_NAME

envvar

KES 服务器上配置的 Key Management system (KMS) 中外部密钥名称,用于执行加密和解密操作。 MinIO 将此密钥用于以下用途:

  • 加密后端数据(IAM、服务器配置)。
  • SSE-KMS 的默认服务端加密密钥。
  • SSE-S3 的服务端加密密钥。
警告

重要

在 MinIO 部署上启用 SSE 后, 会自动使用默认加密密钥对该部署的后端数据进行加密。

MinIO 必须能够访问 KES 和外部 KMS, 才能解密后端并正常启动。 KMS 必须维护并提供对 MINIO_KMS_KES_KEY_NAME 的访问。 之后你不能再禁用 KES, 也不能在后续“撤销”该 SSE 配置。

MINIO_KMS_KES_API_KEY

envvar

使用通过 kes identity new 命令获取的 KES API key 与加密服务进行身份认证的首选方式。

此环境变量与 MINIO_KMS_KES_KEY_FILEMINIO_KMS_KES_CERT_FILE 环境变量互斥。

MINIO_KMS_KES_KEY_FILE

envvar

MINIO_KMS_KES_CERT_FILE x.509 证书关联的私钥,用于向 KES 服务器进行身份认证。 KES 服务器要求客户端提供证书以执行 mutual TLS (mTLS)。

有关 KES 访问控制的完整文档,请参见 KES wiki

还必须设置 MINIO_KMS_KES_CERT_FILE。 此变量与 MINIO_KMS_KES_API_KEY 互斥。

MINIO_KMS_KES_CERT_FILE

envvar

提供给 KES 服务器的 x.509 证书。 KES 服务器要求客户端提供证书以执行 mutual TLS (mTLS)。

KES 服务器会根据证书计算 identity,并将其与已配置策略进行比对。 KES 服务器仅向 minio 服务器授予策略中明确允许的操作访问权限。

有关 KES 访问控制的完整文档,请参见 KES wiki

还必须设置 MINIO_KMS_KES_KEY_FILE。 此变量与 MINIO_KMS_KES_API_KEY 互斥。

MINIO_KMS_KES_CAPATH

envvar

Optional

允许使用自签名或第三方 CA 验证 KES 服务器证书。 指定 KES 部署所使用的 CA 证书路径。

如果使用公共证书颁发机构,则不需要此变量。

MINIO_KMS_KES_KEY_PASSWORD

envvar

Optional

用于加密和解密 TLS 私钥的密码(如果使用)。

MinIO Key Management Server (KMS)

定义以下变量以使用 MinIO KMS 管理密钥。

MINIO_KMS_SERVER

envvar

MinIO Key Management Service (KMS) 进程用于支持 SSE-S3 和 MinIO 后端加密操作的 endpoint。 多个 KMS endpoint 使用 , 分隔。

MINIO_KMS_ENCLAVE

envvar

密钥和身份所在的 MinIO KMS Enclave。

MINIO_KMS_SSE_KEY

envvar

当调用未指定密钥身份时,用于 SSE-S3 加密的默认密钥。

MINIO_KMS_API_KEY

envvar

用于向 MinIO KMS 服务进行身份认证的凭据。

静态密钥文件

注意

警告

这些设置用于在不依赖外部 KMS 的情况下,对对象服务端加密进行早期开发和评估。 不要在长期开发、QA 或生产环境中使用这些设置。 关于如何使用 MinIO Key Encryption Service (KES) 和外部 KMS 部署 SSE,请参见 使用 KES 进行服务端对象加密

提供静态 KMS 密钥或密钥文件用于加密。

MINIO_KMS_SECRET_KEY

envvar

静态 KMS 密钥的 base64 形式,格式为 <key-name>:<base64-32byte-key>。 实现了部分 KMS API。

MINIO_KMS_SECRET_KEY_FILE

envvar

读取静态 KMS 密钥的文件路径。

12.1.10 - Object Lambda 函数设置

本页面介绍了可用于配置 MinIO 的设置,以便将数据发布到 HTTP webhook 端点并触发 Object Lambda 函数。 有关使用这些设置的更完整文档和教程,请参见 使用 Object Lambda 进行转换

你可以通过定义以下项来建立或修改设置:

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

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

某些设置仅提供环境变量或配置项中的一种,而非两者都提供。

警告

重要

每个配置项都会控制 MinIO 的基础行为和功能。 MinIO 强烈建议 先在 DEV 或 QA 等较低级别环境中测试配置变更,再应用到生产环境。

启用

MINIO_LAMBDA_WEBHOOK_ENABLE

envvar

指定 "on" 以启用处理函数的 Object Lambda webhook 端点。

需要同时指定 MINIO_LAMBDA_WEBHOOK_ENDPOINT

你可以通过为每个 Object Lambda 函数追加唯一标识符,将多个 webhook 指定为 Lambda 目标。 例如,以下命令启用两个不同的 Object Lambda webhook 端点:

export MINIO_LAMBDA_WEBHOOK_ENABLE_myfunction="on"
export MINIO_LAMBDA_WEBHOOK_ENABLE_yourfunction="on"

lambda_webhook enable

mc-conf

可选

指定 "on" 以启用处理函数的 Object Lambda webhook 端点。 需要同时指定 endpoint

示例:

mc admin config set myminio lambda_webhook:myfunction endpoint="https://example.com/" enable=on

端点

MINIO_LAMBDA_WEBHOOK_ENDPOINT

envvar

处理函数的 lambda webhook HTTP 端点。

你可以通过为每个 Object Lambda 函数追加唯一标识符,将多个 webhook 端点指定为 Lambda 目标。 例如,以下命令设置两个不同的 Object Lambda webhook 端点:

export MINIO_LAMBDA_WEBHOOK_ENDPOINT_myfunction="http://webhook-1.example.com"
export MINIO_LAMBDA_WEBHOOK_ENDPOINT_yourfunction="http://webhook-2.example.com"

lambda_webhook endpoint

mc-conf

可选

处理函数的 lambda webhook HTTP 端点。

认证令牌

MINIO_LAMBDA_WEBHOOK_AUTH_TOKEN

envvar

指定用于向 lambda webhook 服务进行身份验证的不透明字符串或 JWT 授权令牌。

你可以通过为每个 Object Lambda 函数追加唯一标识符,为多个 Lambda 目标指定令牌。 例如,以下命令为两个不同的 Object Lambda webhook 端点配置令牌:

export MINIO_LAMBDA_WEBHOOK_AUTH_TOKEN_myfunction="1a2b3c4d5e"
export MINIO_LAMBDA_WEBHOOK_AUTH_TOKEN_yourfunction="1a2b3c4d5e"
说明

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

当该值作为 mc admin config get 返回结果的一部分时,MinIO 会对其进行脱敏。

lambda_webhook auth_token

mc-conf

可选

指定用于向 lambda webhook 服务进行身份验证的不透明字符串或 JWT 授权令牌。

说明

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

当该值作为 mc admin config get 返回结果的一部分时,MinIO 会对其进行脱敏。

客户端证书

MINIO_LAMBDA_WEBHOOK_CLIENT_CERT

envvar

指定用于向 lambda webhook 服务执行 mTLS 身份验证的客户端证书路径。

你可以通过为每个 Object Lambda 函数追加唯一标识符,为多个 Lambda 目标指定客户端证书。 例如,以下命令为两个不同的 Object Lambda webhook 端点配置证书:

export MINIO_LAMBDA_WEBHOOK_CLIENT_CERT_myfunction="/path/to/cert1"
export MINIO_LAMBDA_WEBHOOK_CLIENT_CERT_yourfunction="/path/to/cert2"

lambda_webhook client_cert

mc-conf

可选

指定用于向 lambda webhook 服务执行 mTLS 身份验证的客户端证书路径。

客户端密钥

MINIO_LAMBDA_WEBHOOK_CLIENT_KEY

envvar

指定用于向 lambda webhook 服务执行 mTLS 身份验证的私钥路径。

你可以通过为每个 Object Lambda 函数追加唯一标识符,为多个 Lambda 目标指定客户端私钥。 例如,以下命令为两个不同的 Object Lambda webhook 端点配置密钥:

export MINIO_LAMBDA_WEBHOOK_CLIENT_KEY_myfunction="/path/to/key1"
export MINIO_LAMBDA_WEBHOOK_CLIENT_KEY_yourfunction="/path/to/key2"

lambda_webhook client_key

mc-conf

可选

指定用于向 lambda webhook 服务执行 mTLS 身份验证的私钥路径。

12.1.11 - 已弃用设置

本页介绍用于控制 MinIO 进程核心行为的已弃用设置。

本页中的设置可能随时被移除。 用户应尽早迁移到推荐的替代项。

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

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

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

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

警告

重要

每个配置项都会控制 MinIO 的基础行为和功能。 MinIO 强烈建议 先在 DEV 或 QA 等较低级别环境中测试配置变更,再应用到生产环境。

环境变量

以下 环境变量 已弃用。 此处仅为历史参考而列出。

MINIO_SECRET_KEY

envvar

注意

已弃用: RELEASE.2021-04-22T15-44-28Z

root 用户的 secret key。

该环境变量已 弃用,请改用 MINIO_ROOT_PASSWORD 环境变量。

注意

警告

如果未设置 MINIO_SECRET_KEYminio 默认使用 minioadmin

在生产环境中 绝不要 使用默认凭证。 MinIO 强烈建议在所有环境中为 MINIO_ACCESS_KEY 指定唯一、足够长且随机的值。

MINIO_ACCESS_KEY

envvar

注意

已弃用: RELEASE.2021-04-22T15-44-28Z

root 用户的 access key。

该环境变量已 弃用,请改用 MINIO_ROOT_USER 环境变量。

注意

警告

如果未设置 MINIO_ACCESS_KEYminio 默认使用 minioadmin

在生产环境中 绝不要 使用默认凭证。 MinIO 强烈建议在所有环境中为 MINIO_ACCESS_KEY 指定唯一、足够长且随机的值。

MINIO_ACCESS_KEY_OLD

envvar

注意

已弃用: RELEASE.2021-04-22T15-44-28Z

要轮换 root 凭证,请修改 MINIO_ROOT_USERMINIO_ROOT_PASSWORD 环境变量。

MINIO_OPERATOR_DEPLOYMENT_NAME

envvar

注意

已弃用: Operator

6.0.4

指定为 Operator 创建并使用的命名空间。

未指定时,默认值为 minio-operator

MINIO_SECRET_KEY_OLD

envvar

注意

已弃用: RELEASE.2021-04-22T15-44-28Z

要轮换 root 凭证,请修改 MINIO_ROOT_USERMINIO_ROOT_PASSWORD 环境变量。

MINIO_SERVER_URL

envvar

注意

已弃用: RELEASE.2024-05-10T01-41-38Z

MinIO Console 用于连接 MinIO Server 的 fully qualified domain name (FQDN)。

为确保 Console 正常工作,MinIO server URL 必须 是主机的 FQDN,且可解析并可达。

如果指定值无法解析到 MinIO server,通过 MinIO Console 登录将失败,并在等待一段时间后返回网络错误。 较旧版本的 Console 可能会返回通用的“Invalid Login”错误。 可通过取消设置该值 解决 FQDN 解析问题来恢复 Console 登录。 在以下情况下可能需要该设置:

  • MinIO Server 使用的 TLS 证书在 Subject Alternative Name (SAN) 中未包含主机本地 IP。

  • 由于反向代理或类似配置,Console 必须使用特定主机名来连接或引用 MinIO Server。

13 - mc ilm import

说明

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

mc ilm import 已被 mc ilm rule import 替代。

语法

mc ilm import 命令会导入对象生命周期管理配置,并将其应用到 MinIO 存储桶。

mc ilm import 命令默认从 STDIN 导入。你可以从 .json 文件输入内容, 例如由 mc ilm export 生成的文件。

以下命令从 mydata-lifecycle-config.json 导入生命周期管理配置,并将其 应用到 myminio 部署上的 mydata 存储桶:

mc ilm import myminio/mydata < mydata-lifecycle-config.json

该命令语法如下:

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

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

参数

ALIAS

mc-cmd

必需 用于导入对象生命周期管理规则的 MinIO 部署 alias 和存储桶完整路径。例如:

mc ilm import myminio/mydata < bucket-lifecycle.json

全局标志

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

示例

导入存储桶生命周期管理配置

以下命令从 bucket-lifecycle.json 文件导入存储桶生命周期管理配置:

mc ilm import myminio/mybucket < bucket-lifecycle.json
mc ilm import ALIAS < file.json
  • ALIAS 替换为 MinIO 部署的 alias 和要导入对象 生命周期管理规则的存储桶:

    myminio/mydata

  • file.json 替换为要从中导入生命周期管理规则的文件名。

行为

导入配置会覆盖现有规则

mc ilm import 会将当前存储桶生命周期管理规则替换为导入的 JSON 配置中定义 的规则。

S3 兼容性

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

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

14 - 弃用命令

下表列出了 MinIO 已弃用的命令。 该表包含:

  • 已弃用命令
  • 替代命令(如适用)
  • 弃用版本

弃用命令表

已弃用命令 替代命令 弃用版本
mc ilm add mc ilm rule add mc RELEASE.2022-12-24T15-21-38Z
mc ilm edit mc ilm rule edit mc RELEASE.2022-12-24T15-21-38Z
mc ilm export mc ilm rule export mc RELEASE.2022-12-24T15-21-38Z
mc ilm import mc ilm rule import mc RELEASE.2022-12-24T15-21-38Z
mc ilm ls mc ilm rule ls mc RELEASE.2022-12-24T15-21-38Z
mc ilm rm mc ilm rule rm mc RELEASE.2022-12-24T15-21-38Z
mc quota mc RELEASE.2024-07-31T15-58-33Z
mc quota clear mc RELEASE.2024-07-31T15-58-33Z
mc quota info mc RELEASE.2024-07-31T15-58-33Z
mc quota set mc RELEASE.2024-07-31T15-58-33Z
mc replicate diff mc replicate backlog mc RELEASE.2023-07-18T21-05-38Z

弃用管理命令表

已弃用命令 替代命令 弃用版本
mc admin bucket remote mc replicate mc RELEASE.2022-12-24T15-21-38Z
mc admin bucket remote add mc replicate add mc RELEASE.2022-12-24T15-21-38Z
mc admin bucket remote ls mc replicate ls mc RELEASE.2022-12-24T15-21-38Z
mc admin bucket remote rm mc replicate rm mc RELEASE.2022-12-24T15-21-38Z
mc admin bucket remote update mc replicate update mc RELEASE.2022-12-24T15-21-38Z
mc admin bucket quota mc quota clear, mc quota info, mc quota set mc RELEASE.2022-12-13T00-23-28Z
mc admin console mc admin logs mc RELEASE.2022-06-26T18-51-48Z
mc admin idp ldap add mc idp ldap add mc RELEASE.2023-05-26T23-31-54Z
mc admin idp ldap disable mc idp ldap disable mc RELEASE.2023-05-26T23-31-54Z
mc admin idp ldap enable mc idp ldap enable mc RELEASE.2023-05-26T23-31-54Z
mc admin idp ldap info mc idp ldap info mc RELEASE.2023-05-26T23-31-54Z
mc admin idp ldap ls mc idp ldap ls mc RELEASE.2023-05-26T23-31-54Z
mc admin idp ldap policy mc idp ldap policy mc RELEASE.2023-05-26T23-31-54Z
mc admin idp ldap rm mc idp ldap rm mc RELEASE.2023-05-26T23-31-54Z
mc admin idp ldap update mc idp ldap update mc RELEASE.2023-05-26T23-31-54Z
mc admin idp openid add mc idp openid add mc RELEASE.2023-05-26T23-31-54Z
mc admin idp openid disable mc idp openid disable mc RELEASE.2023-05-26T23-31-54Z
mc admin idp openid enable mc idp openid enable mc RELEASE.2023-05-26T23-31-54Z
mc admin idp openid info mc idp openid info mc RELEASE.2023-05-26T23-31-54Z
mc admin idp openid ls mc idp openid ls mc RELEASE.2023-05-26T23-31-54Z
mc admin idp openid rm mc idp openid rm mc RELEASE.2023-05-26T23-31-54Z
mc admin idp openid update mc idp openid update mc RELEASE.2023-05-26T23-31-54Z
mc admin policy add mc admin policy create mc RELEASE.2023-03-20T17-17-53Z
mc admin policy set mc admin policy attach mc RELEASE.2023-03-20T17-17-53Z
mc admin policy unset mc admin policy detach mc RELEASE.2023-03-20T17-17-53Z
mc admin policy update mc admin policy attachmc admin policy detach mc RELEASE.2023-03-20T17-17-53Z
mc admin profile mc support profile mc RELEASE.2023-04-06T16-51-10Z
mc admin replicate edit mc admin replicate update mc RELEASE.2023-01-11T03-14-16Z
mc admin replicate remove mc admin replicate rm mc RELEASE.2023-01-11T03-14-16Z
mc admin speedtest mc support perf mc RELEASE.2022-07-24T02-25-13Z
mc admin tier add mc ilm tier add mc RELEASE.2022-12-24T15-21-38Z
mc admin tier edit mc ilm tier update mc RELEASE.2022-12-24T15-21-38Z
mc admin tier ls mc ilm tier ls mc RELEASE.2022-12-24T15-21-38Z
mc admin top mc support top mc RELEASE.2022-08-11T00-30-48Z

15 - 租户 Helm Charts

已归档的 MinIO Operator 项目曾发布 Operator ChartTenant Chart。本页记录其最终 v7.1.1 Tenant Chart。

以下页面说明 MinIO 租户的 values.yaml Chart。 有关 MinIO Operator Chart 的文档,请参阅 Operator Helm 图表

警告

上游 MinIO Operator 仓库已于 2026 年 3 月 20 日归档。本页是其最终 v7.1.1 Chart 的保留参考快照,不代表上游仍在维护或提供支持。默认值已对照该标签核验;内部文档链接改为本站路由,并把上游陈旧的 existingSecret 注释校正为 Chart 实际使用的 tenant.configSecret.name 输入。下文的 quay.io/minio/minio 是上游 Chart 默认值,不是 Silo 品牌名称,也不是推荐的 Silo 镜像。要运行 Silo,请将 tenant.image.repository 覆盖为 pgsty/minio,并固定经过测试的 已发布标签或镜像摘要

MinIO 租户 Chart

tenant

name

The Tenant name

Change this to match your preferred MinIO Tenant name.

image

Specify the Operator container image to use for the deployment. image.tag For example, the following sets the image to the quay.io/minio/operator repo and the v7.1.1 tag. The container pulls the image if not already present:

image:
   repository: quay.io/minio/minio
   tag: RELEASE.2025-04-08T15-41-24Z
   pullPolicy: IfNotPresent

The chart also supports specifying an image based on digest value:

image:
   repository: quay.io/minio/minio@sha256
   digest: 28c80b379c75242c6fe793dfbf212f43c602140a0de5ebe3d9c2a3a7b9f9f983
   pullPolicy: IfNotPresent

imagePullSecret

An array of Kubernetes secrets to use for pulling images from a private image.repository. Only one array element is supported at this time.

initContainers

Specify initContainers to perform setup or configuration tasks before the main Tenant pods starts.

Example of init container which waits for idenity provider to be reachable before starting MinIO Tenant:

initContainers:
 - name: wait-for-idp
   image: busybox
   command:
     - sh
     - -c
     - |
       URL="https://idp-url"
       echo "Checking IdP reachability (${URL})"
       until $(wget -q -O "/dev/null" ${URL}) ; do
         echo "IdP (${URL}) not reachable. Waiting to be reachable..."
         sleep 5
       done
       echo "IdP (${URL}) reachable. Starting MinIO..."

scheduler

The Kubernetes Scheduler to use for dispatching Tenant pods.

Specify an empty dictionary {} to dispatch pods with the default scheduler.

configSecret

Root key for dynamically creating a secret for use with configuring root MinIO User Specify the name and then a list of environment variables. 若要复用包含 config.env 的现有 Secret,请将 tenant.configSecret.name 设为该 Secret,并把 tenant.configSecret.existingSecret 设为 true

警告

重要

Do not use this in production environments. This field is intended for use with rapid development or testing only.

For example:

name: myminio-env-configuration
accessKey: minio
secretKey: minio123

poolsMetadata

Metadata that will be added to the statefulset and pods of all pools

annotations

Specify annotations to associate to Tenant pods.

labels

Specify labels to associate to Tenant pods.

pools

Top level key for configuring MinIO Pool(s) in this Tenant.

See Operator CRD: Pools for more information on all subfields.

servers

The number of MinIO Tenant Pods / Servers in this pool. For standalone mode, supply 1. For distributed mode, supply 4 or more. Note that the operator does not support upgrading from standalone to distributed mode.

name

Custom name for the pool

volumesPerServer

The number of volumes attached per MinIO Tenant Pod / Server.

size

The capacity per volume requested per MinIO Tenant Pod.

storageAnnotations

Specify storageAnnotations to associate to PVCs.

storageLabels

Specify storageLabels to associate to PVCs.

annotations

Specify annotations to associate to Tenant pods.

labels

Specify labels to associate to Tenant pods.

tolerations

An array of Toleration labels to associate to Tenant pods.

These settings determine the distribution of pods across worker nodes.

nodeSelector

Any Node Selectors to apply to Tenant pods.

The Kubernetes scheduler uses these selectors to determine which worker nodes onto which it can deploy Tenant pods.

If no worker nodes match the specified selectors, the Tenant deployment will fail.

affinity

The affinity or anti-affinity settings to apply to Tenant pods.

These settings determine the distribution of pods across worker nodes and can help prevent or allow colocating pods onto the same worker nodes.

resources

The Requests or Limits for resources to associate to Tenant pods.

These settings can control the minimum and maximum resources requested for each pod. If no worker nodes can meet the specified requests, the Operator may fail to deploy.

securityContext

The Kubernetes SecurityContext to use for deploying Tenant resources.

You may need to modify these values to meet your cluster’s security and access settings.

We recommend disabling recursive permission changes by setting fsGroupChangePolicy to OnRootMismatch as those operations can be expensive for certain workloads (e.g. large volumes with many small files).

containerSecurityContext

The Kubernetes SecurityContext to use for deploying Tenant containers. You may need to modify these values to meet your cluster’s security and access settings.

topologySpreadConstraints

An array of Topology Spread Constraints to associate to Operator Console pods.

These settings determine the distribution of pods across worker nodes.

mountPath

The mount path where Persistent Volumes are mounted inside Tenant container(s).

subPath

The Sub path inside Mount path where MinIO stores data.

注意

警告

Treat the mountPath and subPath values as immutable once you deploy the Tenant. If you change these values post-deployment, then you may have different paths for new and pre-existing data. This can vastly increase operational complexity and may result in unpredictable data states.

metrics

Configures a Prometheus-compatible scraping endpoint at the specified port.

certificate

Configures external certificate settings for the Tenant.

externalCaCertSecret

Specify an array of Kubernetes TLS secrets, where each entry corresponds to a secret the TLS private key and public certificate pair.

This is used by MinIO to verify TLS connections from clients using those CAs If you omit this and have clients using TLS certificates minted by an external CA, those connections may fail with warnings around certificate verification. See Operator CRD: TenantSpec.

externalCertSecret

Specify an array of Kubernetes secrets, where each entry corresponds to a secret contains the TLS private key and public certificate pair.

Omit this to use only the MinIO Operator autogenerated certificates.

If you omit this field and set requestAutoCert to false, the Tenant starts without TLS.

See Operator CRD: TenantSpec.

警告

重要

The MinIO Operator may output TLS connectivity errors if it cannot trust the Certificate Authority (CA) which minted the custom certificates.

You can pass the CA to the Operator to allow it to trust that cert. See Self-Signed, Internal, and Private Certificates for more information. This step may also be necessary for globally trusted CAs where you must provide intermediate certificates to the Operator to help build the full chain of trust.

requestAutoCert

Enable automatic Kubernetes based certificate generation and signing

certConfig

This field is used only when requestAutoCert: true. Use this field to set CommonName for the auto-generated certificate. MinIO defaults to using the internal Kubernetes DNS name for the pod The default DNS name format is typically *.minio.default.svc.cluster.local.

See Operator CRD: CertificateConfig

features

MinIO features to enable or disable in the MinIO Tenant See Operator CRD: Features.

buckets

Array of objects describing one or more buckets to create during tenant provisioning. Example:

- name: my-minio-bucket
  objectLock: false        # optional
  region: us-east-1        # optional

users

Array of Kubernetes secrets from which the Operator generates MinIO users during tenant provisioning.

Each secret should specify the CONSOLE_ACCESS_KEY and CONSOLE_SECRET_KEY as the access key and secret key for that user.

podManagementPolicy

The PodManagement policy for MinIO Tenant Pods. Can be “OrderedReady” or “Parallel”

readiness

Readiness Probe for monitoring Tenant container readiness. Tenant pods will be removed from service endpoints if the probe fails.

startup

Startup Probe for monitoring container startup. Tenant pods will be restarted if the probe fails. Refer

lifecycle

The Lifecycle hooks for container.

exposeServices

Directs the Operator to deploy the MinIO S3 API and Console services as LoadBalancer objects.

If the Kubernetes cluster has a configured LoadBalancer, it can attempt to route traffic to those services automatically.

  • Specify minio: true to expose the MinIO S3 API.
  • Specify console: true to expose the Console.

Both fields default to false.

serviceAccountName

The Kubernetes Service Account associated with the Tenant.

prometheusOperator

Directs the Operator to add the Tenant’s metric scrape configuration to an existing Kubernetes Prometheus deployment managed by the Prometheus Operator.

logging

Configure pod logging configuration for the MinIO Tenant.

  • Specify json for JSON-formatted logs.
  • Specify anonymous for anonymized logs.
  • Specify quiet to supress logging.

An example of JSON-formatted logs is as follows:

$ k logs myminio-pool-0-0 -n default
{"level":"INFO","errKind":"","time":"2022-04-07T21:49:33.740058549Z","message":"All MinIO sub-systems initialized successfully"}

serviceMetadata

serviceMetadata allows passing additional labels and annotations to MinIO and Console specific services created by the operator.

env

Add environment variables to be set in MinIO container (https://github.com/minio/minio/tree/master/docs/config)

priorityClassName

PriorityClassName indicates the Pod priority and hence importance of a Pod relative to other Pods. This is applied to MinIO pods only. Refer Kubernetes documentation for details https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass/

additionalVolumes

An array of Volumes which the Operator can mount to Tenant pods.

The volumes must exist and be accessible to the Tenant pods.

additionalVolumeMounts

An array of volume mount points associated to each Tenant container.

Specify each item in the array as follows:

volumeMounts:
- name: volumename
  mountPath: /path/to/mount

The name field must correspond to an entry in the additionalVolumes array.

ingress

Configures Ingress for the Tenant S3 API and Console.

Set the keys to conform to the Ingress controller and configuration of your choice.

# Root key for MinIO Tenant Chart
tenant:
  ###
  # The Tenant name
  #
  # Change this to match your preferred MinIO Tenant name.
  name: myminio
  ###
  # Specify the Operator container image to use for the deployment.
  # ``image.tag`` 
  # For example, the following sets the image to the ``quay.io/minio/operator`` repo and the v7.1.1 tag.
  # The container pulls the image if not already present:
  #
  # .. code-block:: yaml
  # 
  #    image:
  #       repository: quay.io/minio/minio
  #       tag: RELEASE.2025-04-08T15-41-24Z
  #       pullPolicy: IfNotPresent
  #
  # The chart also supports specifying an image based on digest value:
  # 
  # .. code-block:: yaml
  # 
  #    image:
  #       repository: quay.io/minio/minio@sha256
  #       digest: 28c80b379c75242c6fe793dfbf212f43c602140a0de5ebe3d9c2a3a7b9f9f983
  #       pullPolicy: IfNotPresent
  #
  #
  image:
    repository: quay.io/minio/minio
    tag: RELEASE.2025-04-08T15-41-24Z
    pullPolicy: IfNotPresent
  ###
  #
  # An array of Kubernetes secrets to use for pulling images from a private ``image.repository``.
  # Only one array element is supported at this time.
  imagePullSecret: { }
  ###
  #
  # Specify `initContainers <https://kubernetes.io/docs/concepts/workloads/pods/init-containers/>`__ to perform setup or configuration tasks before the main Tenant pods starts.
  #
  # Example of init container which waits for idenity provider to be reachable before starting MinIO Tenant:
  # 
  # .. code-block:: yaml
  #
  #    initContainers:
  #     - name: wait-for-idp
  #       image: busybox
  #       command:
  #         - sh
  #         - -c
  #         - |
  #           URL="https://idp-url"
  #           echo "Checking IdP reachability (${URL})"
  #           until $(wget -q -O "/dev/null" ${URL}) ; do
  #             echo "IdP (${URL}) not reachable. Waiting to be reachable..."
  #             sleep 5
  #           done
  #           echo "IdP (${URL}) reachable. Starting MinIO..."
  #
  initContainers: [ ]
  ###
  # The Kubernetes `Scheduler <https://kubernetes.io/docs/concepts/scheduling-eviction/kube-scheduler/>`__ to use for dispatching Tenant pods.
  #
  # Specify an empty dictionary ``{}`` to dispatch pods with the default scheduler.
  scheduler: { }
  ###
  # Root key for dynamically creating a secret for use with configuring root MinIO User
  # Specify the ``name`` and then a list of environment variables.
  #
  # .. important::
  #
  #    Do not use this in production environments.
  #    This field is intended for use with rapid development or testing only.
  #
  # For example:
  #
  # .. code-block:: yaml
  #
  #    name: myminio-env-configuration
  #    accessKey: minio
  #    secretKey: minio123
  #
  configSecret:
    name: myminio-env-configuration
    accessKey: minio
    secretKey: minio123
    #existingSecret: true

  ###
  # Metadata that will be added to the statefulset and pods of all pools
  poolsMetadata:
    ###
    # Specify `annotations <https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/>`__ to associate to Tenant pods.
    annotations: { }
    ###
    # Specify `labels <https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/>`__ to associate to Tenant pods.
    labels: { }

  ###
  # If this variable is set to true, then enable the usage of an existing Kubernetes secret to set environment variables for the Tenant.
  # Set the existing Kubernetes secret name under .tenant.configSecret.name, for example existing-minio-env-configuration.
  # The secret must contain a key ``config.env``.
  # The values should be a series of export statements to set environment variables for the Tenant.
  # For example:
  #
  # .. code-block:: shell
  #
  #    stringData:
  #       config.env: |-
  #         export MINIO_ROOT_USER=ROOTUSERNAME
  #         export MINIO_ROOT_PASSWORD=ROOTUSERPASSWORD
  #
  #   existingSecret: false
  ###
  # Top level key for configuring MinIO Pool(s) in this Tenant.
  #
  # See `Operator CRD: Pools <https://silo.pgsty.com/zh/reference/operator-crd/#pool>`__ for more information on all subfields.
  pools:
    ###
    # The number of MinIO Tenant Pods / Servers in this pool.
    # For standalone mode, supply 1. For distributed mode, supply 4 or more.
    # Note that the operator does not support upgrading from standalone to distributed mode.
    - servers: 4
      ###
      # Custom name for the pool
      name: pool-0
      ###
      # The number of volumes attached per MinIO Tenant Pod / Server.
      volumesPerServer: 4
      ###
      # The capacity per volume requested per MinIO Tenant Pod.
      size: 10Gi
      ###
      # The `storageClass <https://kubernetes.io/docs/concepts/storage/storage-classes/>`__ to associate with volumes generated for this pool.
      #
      # If using Amazon Elastic Block Store (EBS) CSI driver
      # Please make sure to set xfs for "csi.storage.k8s.io/fstype" parameter under StorageClass.parameters.
      # Docs: https://github.com/kubernetes-sigs/aws-ebs-csi-driver/blob/master/docs/parameters.md
      # storageClassName: standard
      ###
      # Specify `storageAnnotations <https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/>`__ to associate to PVCs.
      storageAnnotations: { }
      ###
      # Specify `storageLabels <https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/>`__ to associate to PVCs.
      storageLabels: { }
      ###
      # Specify `annotations <https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/>`__ to associate to Tenant pods.
      annotations: { }
      ###
      # Specify `labels <https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/>`__ to associate to Tenant pods.
      labels: { }
      ###
      #
      # An array of `Toleration labels <https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/>`__ to associate to Tenant pods.
      #
      # These settings determine the distribution of pods across worker nodes.
      tolerations: [ ]
      ###
      # Any `Node Selectors <https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/>`__ to apply to Tenant pods.
      #
      # The Kubernetes scheduler uses these selectors to determine which worker nodes onto which it can deploy Tenant pods.
      #
      # If no worker nodes match the specified selectors, the Tenant deployment will fail.
      nodeSelector: { }
      ###
      #
      # The `affinity <https://kubernetes.io/docs/tasks/configure-pod-container/assign-pods-nodes-using-node-affinity/>`__ or anti-affinity settings to apply to Tenant pods.
      #
      # These settings determine the distribution of pods across worker nodes and can help prevent or allow colocating pods onto the same worker nodes.
      affinity: { }
      ###
      # 
      # The `Requests or Limits <https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/>`__ for resources to associate to Tenant pods.
      #
      # These settings can control the minimum and maximum resources requested for each pod.
      # If no worker nodes can meet the specified requests, the Operator may fail to deploy.
      resources: { }
      ###
      # The Kubernetes `SecurityContext <https://kubernetes.io/docs/tasks/configure-pod-container/security-context/>`__ to use for deploying Tenant resources.
      #
      # You may need to modify these values to meet your cluster's security and access settings.
      #
      # We recommend disabling recursive permission changes by setting ``fsGroupChangePolicy`` to ``OnRootMismatch`` as those operations can be expensive for certain workloads (e.g. large volumes with many small files).
      securityContext:
        runAsUser: 1000
        runAsGroup: 1000
        fsGroup: 1000
        fsGroupChangePolicy: "OnRootMismatch"
        runAsNonRoot: true
      ###
      # The Kubernetes `SecurityContext <https://kubernetes.io/docs/tasks/configure-pod-container/security-context/>`__ to use for deploying Tenant containers.
      # You may need to modify these values to meet your cluster's security and access settings.
      containerSecurityContext:
        runAsUser: 1000
        runAsGroup: 1000
        runAsNonRoot: true
        allowPrivilegeEscalation: false
        capabilities:
          drop:
            - ALL
        seccompProfile:
          type: RuntimeDefault
      ###
      #
      # An array of `Topology Spread Constraints <https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/>`__ to associate to Operator Console pods.
      #
      # These settings determine the distribution of pods across worker nodes.
      topologySpreadConstraints: [ ]
      ###
      #
      # The name of a custom `Container Runtime <https://kubernetes.io/docs/concepts/containers/runtime-class/>`__ to use for the Operator Console pods.
      # runtimeClassName: ""
  ###
  # The mount path where Persistent Volumes are mounted inside Tenant container(s).
  mountPath: /export
  ###
  # The Sub path inside Mount path where MinIO stores data.
  #
  # .. warning::
  #
  #    Treat the ``mountPath`` and ``subPath`` values as immutable once you deploy the Tenant.
  #    If you change these values post-deployment, then you may have different paths for new and pre-existing data.
  #    This can vastly increase operational complexity and may result in unpredictable data states.
  subPath: /data
  ###
  # Configures a Prometheus-compatible scraping endpoint at the specified port.
  metrics:
    enabled: false
    port: 9000
    protocol: http
  ###
  # Configures external certificate settings for the Tenant.
  certificate:
    ###
    # Specify an array of Kubernetes TLS secrets, where each entry corresponds to a secret the TLS private key and public certificate pair.
    #
    # This is used by MinIO to verify TLS connections from clients using those CAs
    # If you omit this and have clients using TLS certificates minted by an external CA, those connections may fail with warnings around certificate verification.
    # See `Operator CRD: TenantSpec <https://silo.pgsty.com/zh/reference/operator-crd/#tenantspec>`__.
    externalCaCertSecret: [ ]
    ###
    # Specify an array of Kubernetes secrets, where each entry corresponds to a secret contains the TLS private key and public certificate pair.
    #
    # Omit this to use only the MinIO Operator autogenerated certificates.
    # 
    # If you omit this field *and* set ``requestAutoCert`` to false, the Tenant starts without TLS.
    #
    # See `Operator CRD: TenantSpec <https://silo.pgsty.com/zh/reference/operator-crd/#tenantspec>`__.
    #
    # .. important::
    #
    #    The MinIO Operator may output TLS connectivity errors if it cannot trust the Certificate Authority (CA) which minted the custom certificates.
    #
    #    You can pass the CA to the Operator to allow it to trust that cert.
    #    See `Self-Signed, Internal, and Private Certificates <https://silo.pgsty.com/zh/operations/network-encryption/#self-signed-internal-private-certificates-and-public-cas-with-intermediate-certificates>`__ for more information.
    #    This step may also be necessary for globally trusted CAs where you must provide intermediate certificates to the Operator to help build the full chain of trust.
    externalCertSecret: [ ]
    ###
    # Enable automatic Kubernetes based `certificate generation and signing <https://kubernetes.io/docs/tasks/tls/managing-tls-in-a-cluster>`__
    requestAutoCert: true
    ###
    # The minimum number of days to expiry before an alert for an expiring certificate is fired.
    # In the below example, if a given certificate will expire in 7 days then expiration events will only be triggered 1 day before expiry
    # certExpiryAlertThreshold: 1
    ###
    # This field is used only when ``requestAutoCert: true``.
    # Use this field to set CommonName for the auto-generated certificate. 
    # MinIO defaults to using the internal Kubernetes DNS name for the pod
    # The default DNS name format is typically ``*.minio.default.svc.cluster.local``.
    #
    # See `Operator CRD: CertificateConfig <https://silo.pgsty.com/zh/reference/operator-crd/#certificateconfig>`__
    certConfig: { }
  ###
  # MinIO features to enable or disable in the MinIO Tenant
  # See `Operator CRD: Features <https://silo.pgsty.com/zh/reference/operator-crd/#features>`__.
  features:
    bucketDNS: false
    domains: { }
    enableSFTP: false
  ###
  # Array of objects describing one or more buckets to create during tenant provisioning.
  # Example:
  # 
  # .. code-block:: yaml
  #
  #    - name: my-minio-bucket
  #      objectLock: false        # optional
  #      region: us-east-1        # optional
  buckets: [ ]
  ###
  # Array of Kubernetes secrets from which the Operator generates MinIO users during tenant provisioning.
  #
  # Each secret should specify the ``CONSOLE_ACCESS_KEY`` and ``CONSOLE_SECRET_KEY`` as the access key and secret key for that user.
  users: [ ]
  ###
  # The `PodManagement <https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/#pod-management-policy>`__ policy for MinIO Tenant Pods. 
  # Can be "OrderedReady" or "Parallel"
  podManagementPolicy: Parallel
  # The `Liveness Probe <https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes>`__ for monitoring Tenant pod liveness. 
  # Tenant pods will be restarted if the probe fails.
  liveness: { }
  ###
  # `Readiness Probe <https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/>`__ for monitoring Tenant container readiness.
  # Tenant pods will be removed from service endpoints if the probe fails.
  readiness: { }
  ###
  # `Startup Probe <https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/>`__ for monitoring container startup. 
  # Tenant pods will be restarted if the probe fails.
  # Refer 
  startup: { }
  ###
  # The `Lifecycle hooks <https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/>`__ for container.
  lifecycle: { }
  ###
  # Directs the Operator to deploy the MinIO S3 API and Console services as LoadBalancer objects.
  #
  # If the Kubernetes cluster has a configured LoadBalancer, it can attempt to route traffic to those services automatically.
  #
  # - Specify ``minio: true`` to expose the MinIO S3 API.
  # - Specify ``console: true`` to expose the Console.
  #
  # Both fields default to ``false``.
  exposeServices: { }
  ###
  # The `Kubernetes Service Account <https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/>`__ associated with the Tenant.
  serviceAccountName: ""
  ###
  # Directs the Operator to add the Tenant's metric scrape configuration to an existing Kubernetes Prometheus deployment managed by the Prometheus Operator.
  prometheusOperator: false
  ###
  # Configure pod logging configuration for the MinIO Tenant.
  #
  # - Specify ``json`` for JSON-formatted logs.
  # - Specify ``anonymous`` for anonymized logs.
  # - Specify ``quiet`` to supress logging.
  #
  # An example of JSON-formatted logs is as follows:
  #
  # .. code-block:: shell
  #
  #    $ k logs myminio-pool-0-0 -n default
  #    {"level":"INFO","errKind":"","time":"2022-04-07T21:49:33.740058549Z","message":"All MinIO sub-systems initialized successfully"}
  logging: { }
  ###
  # serviceMetadata allows passing additional labels and annotations to MinIO and Console specific
  # services created by the operator.
  serviceMetadata: { }
  ###
  # Add environment variables to be set in MinIO container (https://github.com/minio/minio/tree/master/docs/config)
  env: [ ]
  ###
  # PriorityClassName indicates the Pod priority and hence importance of a Pod relative to other Pods.
  # This is applied to MinIO pods only.
  # Refer Kubernetes documentation for details https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass/
  priorityClassName: ""
  ###
  # An array of `Volumes <https://kubernetes.io/docs/concepts/storage/volumes/>`__ which the Operator can mount to Tenant pods.
  #
  # The volumes must exist *and* be accessible to the Tenant pods.
  additionalVolumes: [ ]
  ###
  # An array of volume mount points associated to each Tenant container.
  # 
  # Specify each item in the array as follows:
  #
  # .. code-block:: yaml
  #
  #    volumeMounts:
  #    - name: volumename
  #      mountPath: /path/to/mount
  #
  # The ``name`` field must correspond to an entry in the ``additionalVolumes`` array.
  additionalVolumeMounts: [ ]
  # Define configuration for KES (stateless and distributed key-management system)
  # Refer https://github.com/minio/kes
  #kes:
  #  ## Image field:
  #  # Image from tag (original behavior), for example:
  #  # image:
  #  #   repository: quay.io/minio/kes
  #  #   tag: 2025-03-12T09-35-18Z
  #  # Image from digest (added after original behavior), for example:
  #  # image:
  #  #   repository: quay.io/minio/kes@sha256
  #  #   digest: fb15af611149892f357a8a99d1bcd8bf5dae713bd64c15e6eb27fbdb88fc208b
  #  image:
  #    repository: quay.io/minio/kes
  #    tag: 2025-03-12T09-35-18Z
  #    pullPolicy: IfNotPresent
  #  env: [ ]
  #  replicas: 2
  #  configuration: |-
  #    address: :7373
  #    tls:
  #      key: /tmp/kes/server.key   # Path to the TLS private key
  #      cert: /tmp/kes/server.crt # Path to the TLS certificate
  #      proxy:
  #        identities: []
  #        header:
  #          cert: X-Tls-Client-Cert
  #    admin:
  #      identity: ${MINIO_KES_IDENTITY}
  #    cache:
  #      expiry:
  #        any: 5m0s
  #        unused: 20s
  #    log:
  #      error: on
  #      audit: off
  #    keystore:
  #      # KES configured with fs (File System mode) doesn't work in Kubernetes environments and is not recommended
  #      # use a real KMS
  #      # fs:
  #      #   path: "./keys" # Path to directory. Keys will be stored as files. Not Recommended for Production.
  #      vault:
  #        endpoint: "http://vault.default.svc.cluster.local:8200" # The Vault endpoint
  #        namespace: "" # An optional Vault namespace. See: https://www.vaultproject.io/docs/enterprise/namespaces/index.html
  #        prefix: "my-minio"    # An optional K/V prefix. The server will store keys under this prefix.
  #        approle:    # AppRole credentials. See: https://www.vaultproject.io/docs/auth/approle.html
  #          id: "<YOUR APPROLE ID HERE>"      # Your AppRole Role ID
  #          secret: "<YOUR APPROLE SECRET ID HERE>"  # Your AppRole Secret ID
  #          retry: 15s  # Duration until the server tries to re-authenticate after connection loss.
  #        tls:        # The Vault client TLS configuration for mTLS authentication and certificate verification
  #          key: ""     # Path to the TLS client private key for mTLS authentication to Vault
  #          cert: ""    # Path to the TLS client certificate for mTLS authentication to Vault
  #          ca: ""      # Path to one or multiple PEM root CA certificates
  #        status:     # Vault status configuration. The server will periodically reach out to Vault to check its status.
  #          ping: 10s   # Duration until the server checks Vault's status again.
  #      # aws:
  #      #   # The AWS SecretsManager key store. The server will store
  #      #   # secret keys at the AWS SecretsManager encrypted with
  #      #   # AWS-KMS. See: https://aws.amazon.com/secrets-manager
  #      #   secretsmanager:
  #      #     endpoint: ""   # The AWS SecretsManager endpoint      - e.g.: secretsmanager.us-east-2.amazonaws.com
  #      #     region: ""     # The AWS region of the SecretsManager - e.g.: us-east-2
  #      #     kmskey: ""     # The AWS-KMS key ID used to en/decrypt secrets at the SecretsManager. By default (if not set) the default AWS-KMS key will be used.
  #      #     credentials:   # The AWS credentials for accessing secrets at the AWS SecretsManager.
  #      #       accesskey: ""  # Your AWS Access Key
  #      #       secretkey: ""  # Your AWS Secret Key
  #      #       token: ""      # Your AWS session token (usually optional)
  #  imagePullPolicy: "IfNotPresent"
  #  externalCertSecret: null
  #  clientCertSecret: null
  #  # Key name to be created on the KMS, default is "my-minio-key"
  #  keyName: ""
  #  resources: { }
  #  nodeSelector: { }
  #  affinity:
  #    nodeAffinity: { }
  #    podAffinity: { }
  #    podAntiAffinity: { }
  #  tolerations: [ ]
  #  annotations: { }
  #  labels: { }
  #  serviceAccountName: ""
  #  securityContext:
  #    runAsUser: 1000
  #    runAsGroup: 1000
  #    runAsNonRoot: true
  #    fsGroup: 1000
  #  containerSecurityContext:
  #    runAsUser: 1000
  #    runAsGroup: 1000
  #    runAsNonRoot: true
  #    allowPrivilegeEscalation: false
  #    capabilities:
  #      drop:
  #        - ALL
  #    seccompProfile:
  #      type: RuntimeDefault

###
# Configures `Ingress <https://kubernetes.io/docs/concepts/services-networking/ingress/>`__ for the Tenant S3 API and Console.
#
# Set the keys to conform to the Ingress controller and configuration of your choice.
ingress:
  api:
    enabled: false
    ingressClassName: ""
    labels: { }
    annotations: { }
    tls: [ ]
    host: minio.local
    path: /
    pathType: Prefix
  console:
    enabled: false
    ingressClassName: ""
    labels: { }
    annotations: { }
    tls: [ ]
    host: minio-console.local
    path: /
    pathType: Prefix
# Use an extraResources template section to include additional Kubernetes resources
# with the Helm deployment.
#extraResources:
#  - |
#    apiVersion: v1
#    kind: Secret
#    type: Opaque
#    metadata:
#      name: {{ dig "tenant" "configSecret" "name" "" (.Values | merge (dict)) }}
#    stringData:
#      config.env: |-
#        export MINIO_ROOT_USER='minio'
#        export MINIO_ROOT_PASSWORD='minio123'

16 - mc ilm ls

说明

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

mc ilm ls 已由 mc ilm rule ls 替代。

语法

mc ilm ls 命令以表格形式汇总 MinIO 存储桶上已配置的所有对象生命周期管理规则。

该命令的输出可能如下所示:

┌───────────────────────────────────────────────────────────────────────────────┐
│ 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└────────┴─────────┴────────┴─────────────────────┴────────────────┴───────────────┘

以下命令列出 myminio MinIO 部署中 mydata 存储桶的所有生命周期管理规则:

mc ilm ls myminio/mydata

mc ilm ls 命令的语法如下:

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

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

参数

ALIAS

mc-cmd

Required

用于指定要列出对象生命周期管理规则的 MinIO 部署 alias 和存储桶完整路径。例如:

mc ilm ls myminio/mydata
--expiry

mc-cmd

Optional

mc ilm ls 仅返回与生命周期规则过期相关的字段。

--transition 互斥。

--transition

mc-cmd

Optional

mc ilm ls 仅返回与生命周期规则转换相关的字段。

--expiry 互斥。

全局标志

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

示例

列出存储桶生命周期管理规则

使用 mc ilm ls 列出存储桶的生命周期管理规则:

mc ilm ls ALIAS/PATH
  • ALIAS 替换为 S3 兼容主机的 alias
  • PATH 替换为 S3 兼容主机上存储桶的路径。

行为

S3 兼容性

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

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

17 - mc ilm rm

说明

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

mc ilm rm 已被 mc ilm rule rm 取代。

语法

mc ilm rm 命令用于从 MinIO 存储桶中移除一条对象生命周期管理规则。

mc ilm remove 命令与 mc ilm rm 的功能等效。

以下命令从 myminio MinIO 部署的 mydata 存储桶中移除一条生命周期管理规则:

mc ilm rm --id "bgrt1ghju" myminio/mydata

该命令的语法如下:

mc [GLOBALFLAGS] ilm rm                          \
                 --id "string" | (--all --force) \
                 ALIAS                           \
  • 方括号 [] 表示可选参数。
  • 同一行中的参数彼此相互依赖。
  • 使用管道符 | 分隔的参数彼此互斥。

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

参数

ALIAS

mc-cmd

Required 要移除对象生命周期管理规则的 MinIO 部署中, alias 与存储桶完整路径。例如:

mc ilm rm myminio/mydata
all

mc-cmd

Required 移除该存储桶中的所有规则。与 mc ilm rm id 互斥。

mc ilm rm id 互斥。

需要同时包含 force

force

mc-cmd

当指定 all 时必需。

id

mc-cmd

Required 规则的唯一 ID。使用 mc ilm rule ls 列出存储桶规则, 并获取要移除规则的 id

mc ilm rm all 互斥。

全局标志

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

示例

移除存储桶生命周期管理规则

使用 mc ilm rm 移除一条存储桶生命周期管理规则:

mc ilm rm --id "RULE" ALIAS/PATH
  • RULE 替换为生命周期管理规则的唯一名称。
  • ALIAS 替换为 S3 兼容主机的 alias
  • PATH 替换为 S3 兼容主机上的存储桶路径。

行为

S3 兼容性

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

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

18 - mc quota

说明

变更: RELEASE.2024-07-31T15-58-33Z

mc quota 及其子命令已弃用。

说明

mc quota 命令用于为存储桶配置、显示或移除配额限制。

对于已配置配额的存储桶,当其达到指定限制时(由 MinIO object scanner 判定),MinIO 会拒绝该存储桶后续的 PUT 请求。

每当 MinIO object scanner 扫描存储桶中待处理的 object lifecycle transitions 时,也会检查该存储桶是否超出已配置的配额。

说明

配额执行并非即时生效

存储桶配额的设计目的不是对存储桶大小施加严格的硬限制。 如果存储桶在两次扫描之间超出配额,MinIO 仍会继续接受该存储桶的 PUT 请求,直到下一次扫描识别出配额违规 之后 才会拒绝。

子命令

mc quota 包含以下子命令:

子命令

说明

clear

mc quota clear 命令会移除存储桶上已配置的存储配额。

info

mc quota info 命令显示存储桶当前配置的配额。

set

mc quota set 为存储桶分配硬配额限制,超过该限制后 MinIO 不再允许写入。

19 - mc admin bucket quota

说明

变更: RELEASE.2022-12-13T00-23-28Z

mc admin bucket quota 已被以下命令替代:

说明

mc admin bucket quota 命令用于管理按存储桶设置的存储配额。

说明

仅在 MinIO 部署上使用 mc admin

MinIO 不支持将 mc admin 命令用于其他 S3 兼容服务, 无论这些服务声称与 MinIO 部署具有何种兼容性。

计量单位

mc admin bucket quota --hard 标志 接受以下不区分大小写的后缀,用于表示所指定大小值的单位:

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

省略后缀时,默认单位为 bytes

示例

为存储桶配置硬配额

使用 mc admin bucket quota 搭配 --hard 标志,为存储桶指定硬配额。 硬配额可防止存储桶大小增长超过指定限制。

mc admin bucket quota TARGET/BUCKET --hard LIMIT
  • TARGET 替换为已配置 MinIO 部署的 alias。 将 BUCKET 替换为要设置硬配额的存储桶名称。
  • LIMIT 替换为存储桶可增长到的最大大小。 例如,要将硬限制设置为 10 TB,请指定 10t。 支持的单位请参见 计量单位

获取存储桶配额配置

使用 mc admin bucket quota 获取存储桶当前的配额配置:

mc admin bucket quota TARGET/BUCKET

TARGET 替换为已配置 MinIO 部署的 alias。 将 BUCKET 替换为要获取配额的存储桶名称。

清除已配置的存储桶配额

使用 mc admin bucket quota 搭配 --clear 标志,清除存储桶上的所有配额。

mc admin bucket quota TARGET/BUCKET --clear
  • TARGET 替换为已配置 MinIO 部署的 alias。 将 BUCKET 替换为要清除配额的存储桶名称。

语法

mc admin bucket quota 使用以下语法:

mc admin bucket quota TARGET [ARGUMENTS]

mc admin bucket quota 支持以下参数:

TARGET

mc-cmd

命令为其创建配额的存储桶的完整路径。 指定 MinIO 部署的 alias 作为路径前缀。 例如:

mc admin bucket quota play/mybucket

省略其他所有参数可返回指定存储桶的当前配额设置。

--hard

mc-cmd

设置存储桶存储大小的最大限制。对于内容会超过存储桶已配置配额的传入 PUT 请求,MinIO 服务器会予以拒绝。

例如,若硬限制为 10GB,当存储桶大小达到 10GB 时,将无法再添加 任何对象。

支持的单位大小请参见 计量单位

--clear

mc-cmd

清除为该存储桶配置的所有配额。

20 - mc admin bucket remote

说明

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

说明

变更: RELEASE.2023-02-16T19-20-11Z

  • mc admin bucket remote bandwidth 已替换为 mc replicate status

    与复制相关的统计信息已迁移到 mc replicate status 命令。

描述

mc admin bucket remote 命令用于管理 ARN 资源, 供 bucket replication 使用。

说明

仅在 MinIO 部署上使用 mc admin

MinIO 不支持将 mc admin 命令用于其他 S3 兼容服务, 无论这些服务声称与 MinIO 部署具有何种兼容性。

示例

添加新的复制目标

使用 mc admin bucket remote add 创建一个新的复制目标 ARN,供 mc replicate add 使用:

mc admin bucket remote add SOURCE/BUCKET DESTINATION/BUCKET
  • SOURCE 替换为 作为复制目标的 MinIO 部署的 alias。 将 BUCKET 替换为存储桶完整路径,MinIO 会将来自 DESTINATION 的对象复制到该存储桶。
  • DESTINATION 替换为 作为复制源的 MinIO 部署的 alias。 将 BUCKET 替换为存储桶完整路径,MinIO 会从该存储桶复制对象到 SOURCE

删除现有复制目标

使用 mc admin bucket remote rm 从存储桶中删除复制目标:

mc admin bucket remote rm SOURCE/BUCKET --arn ARN
  • SOURCE 替换为 作为复制源使用的 MinIO 部署的 alias。 将 BUCKET 替换为 MinIO 复制对象来源存储桶的完整路径。
  • ARN 替换为 远程目标的 ARN。

删除该目标会停止所有正在进行的、 发往该目标的 bucket replication

查询已配置的复制目标

使用 mc replicate ls 列出存储桶已配置的复制目标:

mc replicate ls ALIAS/PATH
  • ALIAS 替换为 作为复制源使用的 MinIO 部署的 alias。 将 PATH 替换为 MinIO 复制对象来源存储桶的完整路径。

语法

mc admin bucket remote add

mc-cmd

说明

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

在 MinIO 部署上的存储桶中添加远程目标。该命令语法如下:

mc admin bucket remote add SOURCE DESTINATION --service "replication" [FLAGS]

该命令接受以下参数:

SOURCE

mc-cmd

Required

要添加远程目标的存储桶完整路径。 指定已配置 MinIO 部署的 alias 作为存储桶路径前缀。例如:

mc admin bucket remote add play/mybucket

DESTINATION

mc-cmd

Required

目标 MinIO 部署和存储桶。

使用以下格式指定目标 MinIO 部署和存储桶的完整 URL:

http(s)://ACCESSKEY:SECRETKEY@DESTHOSTNAME/DESTBUCKET
  • ACCESSKEY 替换为目标 MinIO 部署上某个用户的 access key。

  • SECRETKEY 替换为目标 MinIO 部署上某个用户的 secret key。

  • DESTHOSTNAME 替换为 MinIO 部署的主机名和端口

    (例如 minio-server.example.net:9000)。

  • DESTBUCKET 替换为目标端的存储桶。

--service

mc-cmd

Required

指定为 "replication"

--region

mc-cmd

DESTINATION 的地域。

add 互斥。

--path

mc-cmd

目标服务器支持的存储桶路径查找方式。指定以下之一:

  • on
  • off
  • auto(默认)

add 互斥。

--sync

mc-cmd

启用同步复制模式,MinIO 会在返回 PUT 对象响应 之前 尝试复制对象。 同步复制可能会增加等待 PUT 操作成功返回的时间。

默认情况下,mc admin bucket remote add 以异步模式运行, MinIO 会在返回 PUT 对象响应 之后 尝试复制对象。

mc admin bucket remote ls

mc-cmd

说明

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

列出 MinIO 部署上与某个存储桶关联的所有远程目标。 使用 mc admin bucket remote ls --help 查看用法语法。

mc admin bucket remote rm, remove

mc-cmd

说明

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

删除 MinIO 部署上某个存储桶的远程目标。该命令语法如下:

mc admin bucket remote rm SOURCE --arn ARN

该命令接受以下参数:

SOURCE

mc-cmd

Required

要删除远程目标的源存储桶完整路径。 指定已配置 MinIO 部署的 alias 作为存储桶路径前缀。 例如:

mc admin bucket remote rm play/mybucket

ARN

mc-cmd

Required

要从目标存储桶中删除的远程目标 ARN。 使用 mc admin bucket remote ls 列出指定存储桶的所有远程目标及其对应的 ARN。

21 - mc admin console

警告

重要

此命令已在 mc RELEASE.2022-12-02T23-48-47Z 中被 mc admin logs 替代。

该命令此前已在 mc RELEASE.2022-06-26T18-51-48Z 中被 mc support logs show 替代。

描述

mc admin console 命令返回部署中每个 MinIO 服务器的服务端日志条目。

说明

仅在 MinIO 部署上使用 mc admin

MinIO 不支持将 mc admin 命令用于其他 S3 兼容服务, 无论这些服务声称与 MinIO 部署具有何种兼容性。

语法

mc admin console 的语法如下:

mc admin console [FLAGS] TARGET NODENAME

mc admin console 支持以下项:

TARGET

mc-cmd

已配置 MinIO 部署的 alias,命令将从该部署中检索服务端日志。

NODENAME

mc-cmd

命令从中检索服务端日志的特定 MinIO 服务器节点。

--limit, l

mc-cmd

要显示的最新日志条目数量。默认为 10

--type, t

mc-cmd

要返回的错误日志类型。以逗号分隔的 , 列表形式指定以下一个或多个选项:

  • minio
  • application
  • all(默认)

22 - mc admin idp ldap

说明

变更: RELEASE.2023-05-26T23-31-54Z

mc admin idp ldap 及其子命令已由 mc idp ldap 替代。

说明

mc admin idp ldap 命令允许你为第三方 Active Directory 或 LDAP 身份与访问管理(IAM)集成 添加、修改、查看、列出、移除、启用和禁用服务器配置。

配置 AD/LDAP 连接 时,可将配置设置作为使用环境变量的替代方案。

说明

说明

配置设置 不会 覆盖通过环境变量配置的设置。

mc admin idp ldap 命令包含以下子命令:

子命令 说明
mc admin idp ldap add 创建 AD/LDAP IDP 服务器配置。
mc admin idp ldap update 修改现有的 AD/LDAP IDP 服务器配置。
mc admin idp ldap ls 列出 AD/LDAP 服务器配置。
mc admin idp ldap rm 从部署中移除 AD/LDAP IDP 服务器配置。
mc admin idp ldap info 显示指定 AD/LDAP 服务器配置的详细信息。
mc admin idp ldap enable 启用 AD/LDAP 服务器配置。
mc admin idp ldap disable 禁用 AD/LDAP 服务器配置。
mc admin idp ldap policy entities 列出策略关联实体。

配置参数

mc admin idp ldap 子命令支持配置参数。 这些参数定义了服务器与 Active Directory 或 LDAP IAM 提供方的交互方式。

有关配置参数的更详细说明,请参阅 配置设置文档

语法

add

mc-cmd

为 AD/LDAP 提供方创建新配置。 每个部署中,MinIO 最多仅支持 一个 (1) AD/LDAP 提供方。

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

 mc admin 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] admin idp ldap add          \
                           ALIAS             \
                           [CFG_PARAM1]      \
                           [CFG_PARAM2]...
  • ALIAS 替换为 MinIO 部署的 alias,用于创建 AD/LDAP 集成配置。
  • [CFG_PARAM#] 替换为各个 配置设置 键值对,格式为 PARAMETER="value"

update

mc-cmd

修改 AD/LDAP 提供方现有的一组配置。

以下示例修改 myminio 部署中的两个 AD/LDAP 配置参数。

mc admin idp ldap update                                \
                  myminio                               \
                  lookup_bind_dn=cn=admin,dc=min,dc=io  \
                  lookup_bind_password=somesecret

该命令语法如下:

mc [GLOBALFLAGS] admin idp ldap update           \
                                ALIAS            \
                                [CFG_PARAM1]     \
                                [CFG_PARAM2]...
  • ALIAS 替换为 MinIO 部署的 alias,用于更新 AD/LDAP 集成配置。
  • [CFG_PARAM#] 替换为要更新的各个 配置设置 键值对,格式为 PARAMETER="value"

ls, list

mc-cmd

列出 AD/LDAP 提供方现有的一组配置。

以下示例列出 myminio 部署中的 AD/LDAP 配置参数。

mc admin idp ldap ls myminio

该命令语法如下:

mc [GLOBALFLAGS] admin idp ldap ls ALIAS
  • ALIAS 替换为 MinIO 部署的 alias,用于列出 AD/LDAP 集成配置。

rm, remove

mc-cmd

移除 AD/LDAP 提供方现有配置。

以下示例移除 myminio 部署中的 AD/LDAP 提供方设置。

mc admin idp ldap rm myminio

该命令语法如下:

mc [GLOBALFLAGS] admin idp ldap rm     \
                                ALIAS
  • ALIAS 替换为 MinIO 部署的 alias,用于移除 AD/LDAP 集成配置。

info

mc-cmd

输出指定 MinIO 部署上 AD/LDAP 提供方的当前配置。

以下示例输出 myminio 部署上的 AD/LDAP 配置参数。

mc admin idp ldap info myminio

该命令语法如下:

mc [GLOBALFLAGS] admin idp ldap info     \
                                ALIAS
  • ALIAS 替换为 MinIO 部署的 alias,用于获取 AD/LDAP 集成信息。

enable

mc-cmd

启用当前已配置的 AD/LDAP 提供方。

以下示例在 myminio 部署上启用 AD/LDAP 配置。

mc admin idp ldap enable       \
                  myminio

该命令语法如下:

mc [GLOBALFLAGS] admin idp ldap enable     \
                                ALIAS
  • ALIAS 替换为 MinIO 部署的 alias,用于启用 AD/LDAP 集成配置。

disable

mc-cmd

禁用当前已配置的 AD/LDAP 提供方。

以下示例在 myminio 部署上禁用 AD/LDAP 配置。

mc admin idp ldap disable      \
                  myminio

该命令语法如下:

mc [GLOBALFLAGS] admin idp ldap disable       \
                                ALIAS
  • ALIAS 替换为 MinIO 部署的 alias,用于禁用 AD/LDAP 集成配置。

全局标志

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

23 - mc admin idp ldap policy

说明

变更: RELEASE.2023-05-26T23-31-54Z

mc admin idp ldap policy 及其子命令已由 mc idp ldap policy 替代。

说明

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

mc admin idp ldap policy 命令包含以下子命令:

子命令 说明
mc admin idp ldap policy attach 将策略附加到实体
mc admin idp ldap policy detach 从实体分离策略
mc admin idp ldap policy entities 列出策略与实体的映射

语法

attach

mc-cmd

将一个或多个策略附加到实体。

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

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

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

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

命令语法如下:

mc [GLOBALFLAGS] admin idp ldap policy attach     \
                                POLICYNAME        \
                                [POLICY2] ...     \
                                ALIAS             \
                                [--user=`USER`]   \
                                [--group=`GROUP`]
  • ALIAS 替换为 MinIO 部署的 alias,用于配置 AD/LDAP 集成。
  • POLICYNAME 替换为要附加到实体的策略。 你可以列出多个策略并附加到该实体。
  • 必须使用 --user--group 其中之一。 每个命令中只能使用一次该标志。 不能在同一命令中同时使用这两个标志。

detach

mc-cmd

从实体分离一个或多个策略。

以下示例从 myminio 部署上的 projectb 组分离两个策略 policy1policy2

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

以下示例从 myminio 部署上的用户 bobfisher 分离策略 userpolicy

 mc admin idp ldap policy detach myminio/                                               \
                                 mypolicy                                               \
                                 policy2                                                \
                                 --user='uid=bobfisher,ou=people,ou=hwengg,dc=min,dc=io'

命令语法如下:

mc [GLOBALFLAGS] admin idp ldap policy detach     \
                                POLICYNAME        \
                                [POLICY2] ...     \
                                ALIAS             \
                                [--user=`USER`]   \
                                [--group=`GROUP`]
  • ALIAS 替换为 MinIO 部署的 alias,用于配置 AD/LDAP 集成。
  • POLICYNAME 替换为要从实体分离的策略。 你可以列出多个策略并从该实体分离。
  • 必须使用 --user--group 其中之一。 每个命令中只能使用一次该标志。 不能在同一命令中同时使用这两个标志。

entities

mc-cmd

显示用户、组和/或策略的映射列表。

以下示例列出 myminio 部署中某个特定策略、一组组以及部分用户的全部映射关系。

具体包括: - 映射到 finteam-policy 策略的用户。 - 分配给用户 uid=bobfisher,ou=people,ou=hwengg,dc=min,dc=io 的策略 - 分配给组 cn=projectb,ou=groups,ou=swengg,dc=min,dc=io 的策略

 mc admin 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] admin idp ldap policy entities                \
                                ALIAS                          \
                                [--user `value`, -u `value`]   \
                                [--group `value`, -g `value`]  \
                                [--policy value]
  • ALIAS 替换为 MinIO 部署的 alias,用于配置 AD/LDAP 集成。
  • 在命令中可按需多次使用 --user--group 和/或 --policy 标志。
  • 对于每个标志,输出会列出映射到指定策略、用户或组的实体。
  • 省略所有标志可返回所有策略的映射列表。

全局标志

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

24 - mc admin idp openid

说明

变更: RELEASE.2023-05-26T23-31-54Z

mc admin idp openid 及其子命令已由 mc idp openid 替代。

描述

mc admin idp openid 命令允许你为第三方 OpenID 身份与访问管理(IAM)集成 添加、修改、查看、列出、移除、启用和禁用服务器配置。

设置 OpenID 连接 时,可通过定义配置设置来替代使用环境变量。

mc admin idp openid 命令包含以下子命令:

子命令 描述
mc admin idp openid add 创建 OpenID IDP 服务器配置。
mc admin idp openid update 修改现有的 OpenID IDP 服务器配置。
mc admin idp openid rm 从部署中移除 OpenID IDP 服务器配置。
mc admin idp openid ls 输出部署中现有 OpenID 服务器配置列表。
mc admin idp openid info 显示特定 OpenID 服务器配置的详细信息。
mc admin idp openid enable 启用 OpenID 服务器配置。
mc admin idp openid disable 禁用 OpenID 服务器配置。

配置参数

mc admin idp openid 子命令支持配置参数。 这些参数定义了服务器与 IAM 提供方的交互方式。

有关配置参数的更详细说明,请参阅 配置设置文档

语法

add

mc-cmd

为 OpenID 提供方创建一组新的配置。

你可以多次运行该命令来设置多个 OpenID 提供方。

添加多个 OpenID 提供方时,只能有一个是基于 JWT Claim 的提供方。 其余都必须是基于角色的提供方。

以下示例为 myminio 部署创建配置设置,在新的 test-config 配置中定义 Dex 集成。

 mc admin 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] admin 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 admin idp openid update                      \
                    myminio                     \
                    test_config                 \
                    scopes="openid,groups"      \
                    role_policy="consoleAdmin"

命令语法如下:

mc [GLOBALFLAGS] admin 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 admin idp openid rm myminio test_config

命令语法如下:

mc [GLOBALFLAGS] admin idp openid rm     \
                                  ALIAS      \
                                  [CFG_NAME]
  • ALIAS 替换为用于配置 OpenID 集成的 MinIO 部署的 alias
  • CFG_NAME 替换为该配置的唯一字符串。 如果未指定,命令会删除默认配置。

ls, list

mc-cmd

输出 OpenID 提供方现有配置集合列表。

以下示例输出 myminio 部署定义的所有 OpenID 配置集合列表。

mc admin idp openid ls myminio

命令语法如下:

mc [GLOBALFLAGS] admin idp openid ls ALIAS
  • ALIAS 替换为要列出 OpenID 集成的 MinIO 部署的 alias

info

mc-cmd

输出 OpenID 提供方现有服务器配置集合中定义的参数值。

以下示例输出 myminio 部署中 test_config 这组 OpenID 设置所定义的配置项。

mc admin idp openid info myminio test_config

命令语法如下:

mc [GLOBALFLAGS] admin idp openid info     \
                                  ALIAS      \
                                  [CFG_NAME]
  • ALIAS 替换为用于配置 OpenID 集成的 MinIO 部署的 alias
  • CFG_NAME 替换为该配置的唯一字符串。 如果未指定,则显示默认服务器配置的信息。

enable

mc-cmd

开始使用 OpenID 提供方的现有配置集合。

以下示例启用 myminio 部署上定义为 test_config 的服务器配置。

mc admin idp openid enable       \
                    myminio      \
                    test_config

命令语法如下:

mc [GLOBALFLAGS] admin idp openid enable     \
                                  ALIAS      \
                                  [CFG_NAME]
  • ALIAS 替换为用于配置 OpenID 集成的 MinIO 部署的 alias
  • CFG_NAME 替换为该配置的唯一字符串。 如果未指定,命令会启用默认配置值。

disable

mc-cmd

停止使用 OpenID 提供方的一组配置。

以下示例禁用 myminio 部署上定义为 test_config 的服务器配置。

mc admin idp openid disable      \
                    myminio      \
                    test_config

命令语法如下:

mc [GLOBALFLAGS] admin idp openid disable       \
                                  ALIAS         \
                                  [CFG_NAME]
  • ALIAS 替换为用于配置 OpenID 集成的 MinIO 部署的 alias
  • CFG_NAME 替换为该配置的唯一字符串。 如果未指定,命令会禁用默认配置值。

全局标志

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

25 - mc admin profile

说明

说明

mc RELEASE.2023-04-06T16-51-10Z 起,该命令已由 mc support profile 取代。

描述

mc admin profile 命令会生成用于调试的性能分析数据。

说明

仅在 MinIO 部署上使用 mc admin

MinIO 不支持将 mc admin 命令用于其他 S3 兼容服务, 无论这些服务声称与 MinIO 部署具有何种兼容性。

性能分析数据格式

mc admin profile 会生成一个 ZIP 归档文件 profile.zip, 其中包含一个或多个 .pprof 文件。使用 pprof go 工具读取这些性能分析数据。

示例

单个资源的性能分析数据

使用 mc admin profile start 并结合 type 标志开始对该资源进行性能分析:

mc admin profile start --type "TYPE" ALIAS
  • ALIAS 替换为 MinIO 主机的 alias
  • TYPE 替换为要分析的资源类型。

使用 mc admin profile stop 停止对指定资源的性能分析并输出结果:

mc admin profile stop

该命令会将性能分析数据输出为 profile.zip

多个资源的性能分析数据

使用 mc admin profile start 并结合 type 标志开始对这些资源进行性能分析:

mc admin profile start --type "TYPE,[TYPE...]" ALIAS
  • ALIAS 替换为 MinIO 主机的 alias
  • TYPE 替换为要分析的资源类型。 多个资源类型请使用逗号分隔列表指定。

使用 mc admin profile stop 停止对指定资源的性能分析并输出结果:

mc admin profile stop

该命令会将性能分析数据输出为 profile.zip

语法

mc admin profile 的语法如下:

mc admin profile SUBCOMMAND

mc admin profile 支持以下子命令:

mc admin profile start

mc-cmd

在目标 MinIO 部署上开始收集性能分析数据。该命令语法如下:

mc admin profile start [FLAGS] TARGET

mc admin profile start 支持以下参数:

TARGET

mc-cmd

已配置 MinIO 部署的 alias,命令将从该部署收集性能分析数据。

type

mc-cmd

TARGET MinIO 部署收集的性能分析数据类型。

将以下一个或多个支持的类型以逗号分隔列表形式指定:

  • cpu
  • mem
  • block
  • mutex
  • trace
  • threads
  • goroutines

省略时默认为 cpu,mem,block

mc admin profile stop

mc-cmd

停止性能分析过程,并将收集的数据作为 profile.zip 返回。该 zip 文件包含一个或多个 .pprof 文件,可由 go pprof 等工具读取。

该命令语法如下:

mc admin profile stop TARGET

该命令支持以下参数:

TARGET

mc-cmd

已配置 MinIO 部署的 alias,命令将从该部署返回可用的性能分析数据。

26 - mc admin speedtest

说明

变更: RELEASE.2022-07-24T02-25-13Z

mc admin speedtest 已由 mc support perf 替代。

描述

mc admin speedtest 命令通过 PUTGET 操作测试每个主机的吞吐量。

speedtestmc RELEASE.2021-09-02T09-21-27Z 开始可用,并支持运行 RELEASE.2021-07-30T00-02-00Z 或更高版本的分布式 MinIO 部署。

speedtest 不支持独立部署或 MinIO Gateway 部署。

说明

仅在 MinIO 部署上使用 mc admin

MinIO 不支持将 mc admin 命令用于其他 S3 兼容服务, 无论这些服务声称与 MinIO 部署具有何种兼容性。

语法

mc admin speedtest 使用以下语法:

mc admin speedtest [FLAGS] TARGET

mc admin speedtest 支持以下参数:

TARGET

mc-cmd

必需

已配置 MinIO 部署的 alias,用于执行 speedtest。

--duration

mc-cmd

整个 speedtest 的运行时长。默认为 10s

--size

mc-cmd

用于上传/下载的对象大小。默认为 64MiB

--concurrent

mc-cmd

每个服务器的并发请求数。默认为 32

27 - mc admin tier

说明

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

mc admin tier 已由 mc ilm tier 替代。

描述

mc admin tier 命令用于配置受支持的远程 S3 兼容服务,以支持 MinIO Lifecycle Management: Object Transition (“Tiering”)

说明

仅在 MinIO 部署上使用 mc admin

MinIO 不支持将 mc admin 命令用于其他 S3 兼容服务, 无论这些服务声称与 MinIO 部署具有何种兼容性。

支持的 S3 服务

mc admin tier 支持将以下 S3 兼容服务用作对象分层的远程目标:

  • 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 分层的更完整信息,请参考受支持分层目标的文档:

语法

mc admin tier add

mc-cmd

创建一个新的远程存储层,用于通过 MinIO 生命周期管理规则过渡对象。

警告

重要

MinIO 不支持移除远程存储层。在将其添加为远程层目标 之前,请先确保该存储后端能够满足预期工作负载。

命令语法如下:

mc admin tier add TIER_TYPE TARGET TIER_NAME [FLAGS]

此命令接受以下参数:

TIER_TYPE

mc-cmd

Required

MinIO 用于过渡对象的云服务提供商存储后端(“Tier”)。请在以下受支持值中指定 一个

s3

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

需要额外指定以下选项:

azure

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

需要额外指定以下选项:

gcs

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

需要额外指定以下选项:

TARGET

mc-cmd

Required

已配置 MinIO 部署的 alias,命令会在该部署上创建新的远程层。

TIER_NAME

mc-cmd

Required

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

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

--endpoint

mc-cmd

Required

云服务提供商的 URL endpoint。该 URL endpoint 必须 能解析到 TIER_TYPE 指定的提供商。

--access-key

mc-cmd

Required

远程 S3 层用户的 access key。该用户必须对远程存储桶或存储桶前缀具备读/写/列举/删除操作权限。

TIER_TYPEs3 时必填。 对 TIER_TYPE 的其他取值,此选项无效。

--secret-key

mc-cmd

Required

远程 S3 层用户的 secret key。

TIER_TYPEs3 时必填。 对 TIER_TYPE 的其他取值,此选项无效。

--account-name

mc-cmd

Required

远程 Azure 层用户的 account name。该用户必须对远程存储桶或存储桶前缀具备读/写/列举/删除操作权限。

TIER_TYPEazure 时必填。 对 TIER_TYPE 的其他取值,此选项无效。

MinIO 支持修改与 Azure 远程层关联的 account name。Azure 存储后端与账号绑定,修改账号会改变存储后端,并导致无法访问已过渡到原账号/后端的任何对象。

--account-key

mc-cmd

Required

与远程 Azure 层关联的 --account-name 对应的 account key。

TIER_TYPEazure 时必填。 对 TIER_TYPE 的其他取值,此选项无效。

--credentials-file

mc-cmd

Required

远程 GCS 层用户的 credential file。该用户必须对远程存储桶或存储桶前缀具备读/写/列举/删除操作权限。

TIER_TYPEgcs 时必填。 对 TIER_TYPE 的其他取值,此选项无效。

--bucket

mc-cmd

Required

MinIO 过渡对象所使用的远程层存储桶。

--prefix

mc-cmd

Optional

指定 --bucket 下 MinIO 过渡对象使用的前缀路径。

省略此字段则将对象过渡到存储桶根路径。

--storage-class

mc-cmd

Optional

MinIO 过渡对象时使用的 AWS 存储类。MinIO 仅支持以下存储类:

  • STANDARD
  • REDUCED_REDUNDANCY

省略时默认为 S3_STANDARD

此选项仅在 TIER_TYPEs3 时生效。 对 TIER_TYPE 的其他取值,此选项无效。

--region

mc-cmd

Optional

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

此选项仅在 TIER_TYPEs3 时生效。 对 TIER_TYPE 的其他取值,此选项无效。

mc admin tier edit

mc-cmd

修改或移除 MinIO 集群中的远程存储层。远程存储层支持通过 MinIO 生命周期管理规则进行对象过渡。

命令语法如下:

mc admin tier edit TARGET TIER_NAME [FLAGS]

此命令接受以下参数:

TARGET

mc-cmd

Required

已配置 MinIO 部署的 alias

TIER_NAME

mc-cmd

Required

命令要修改的远程层名称。该值对应于创建远程层时指定的 mc admin tier add TIER_NAME

--access-key

mc-cmd

Optional

远程 S3 层用户的 access key。该用户必须对远程存储桶或存储桶前缀具备读/写/列举/删除操作权限。

此选项仅适用于 TIER_TYPEs3 的远程存储层。 对其他 TIER_TYPE,此选项无效。

--secret-key

mc-cmd

Optional

远程 S3 层用户的 secret key。

此选项仅适用于 TIER_TYPEs3 的远程存储层。 对其他 TIER_TYPE,此选项无效。

--account-key

mc-cmd

Required

远程 Azure 层用户的 account key。 使用此选项可轮换与远程层关联的 --account-name 凭证。

此选项仅适用于 TIER_TYPEazure 的远程存储层。 对其他 TIER_TYPE,此选项无效。

--credentials-file

mc-cmd

Required

远程 GCS 层用户的 credential file。该用户必须对远程存储桶或存储桶前缀具备读/写/列举/删除操作权限。

此选项仅适用于 TIER_TYPEgcs 的远程存储层。 对其他 TIER_TYPE,此选项无效。

mc admin tier ls

mc-cmd

列出 MinIO 集群上的所有远程存储层。远程存储层支持通过 MinIO 生命周期管理规则进行对象过渡。

命令语法如下:

mc admin tier ls TARGET [FLAGS]

此命令接受以下参数:

TARGET

mc-cmd

Required

已配置 MinIO 部署的 alias

28 - mc admin top

说明

变更: RELEASE.2022-08-11T00-30-48Z

mc admin top 已由 mc support top 替代。

描述

mc admin top 命令返回分布式 MinIO 部署的统计信息, 类似于 top 命令的输出。

说明

仅在 MinIO 部署上使用 mc admin

MinIO 不支持将 mc admin 命令用于其他 S3 兼容服务, 无论这些服务声称与 MinIO 部署具有何种兼容性。

语法

mc admin top locks

mc-cmd

返回 MinIO 部署中最早的 10 个锁。

该命令的语法如下:

mc admin top locks TARGET

该命令支持以下参数:

TARGET

mc-cmd

已配置 MinIO 部署的 alias,命令将从该部署 获取统计信息。

该 alias 必须 对应分布式(多节点)MinIO 部署。 对于 single-node single-drive 部署,该命令会返回错误。

29 - Kubernetes 参考

本页面作为 MinIO Kubernetes 专有参考文档的索引。

30 - 裸金属参考

本页作为 MinIO 裸金属参考文档的索引页。

31 - S3 API 兼容性

本页面记录 MinIO 对象存储支持的 S3 API。 如需查看任意 API 的参考文档,请参阅 Amazon S3 的对应文档。

警告

重要

MinIO 强烈建议使用 S3 兼容 SDK 执行对象存储操作。

对象 API

对象锁定

不支持的 API 对象端点

GetObjectAcl
PutObjectAcl

多部分上传

与 S3 API 在多部分上传方面的差异

  • ListMultipartUploads 需要使用精确的对象名称作为前缀。
  • PutBucketLifecycle 不支持 AbortIncompleteMultipartUpload 生命周期动作。

存储桶 API

存储桶复制

存储桶生命周期

存储桶通知

存储桶策略

不支持的 API 存储桶操作

GetBucketInventoryConfiguration
PutBucketInventoryConfiguration
DeleteBucketInventoryConfiguration
PutBucketCors
DeleteBucketCors
GetBucketMetricsConfiguration
PutBucketMetricsConfiguration
DeleteBucketMetricsConfiguration
PutBucketWebsite
GetBucketLogging
PutBucketLogging
PutBucketAccelerateConfiguration
DeleteBucketAccelerateConfiguration
PutBucketRequestPayment
DeleteBucketRequestPayment
PutBucketAcl
HeadBucketAcl
GetPublicAccessBlock
PutPublicAccessBlock
DeletePublicAccessBlock
GetBucketOwnershipControls
PutBucketOwnershipControls
DeleteBucketOwnershipControls
GetBucketIntelligentTieringConfiguration
PutBucketIntelligentTieringConfiguration
ListBucketIntelligentTieringConfigurations
DeleteBucketIntelligentTieringConfiguration
GetBucketAnalyticsConfiguration
PutBucketAnalyticsConfiguration
ListBucketAnalyticsConfigurations
DeleteBucketAnalyticsConfiguration
CreateSession

MinIO 针对不支持的存储桶资源的替代方案

  • 对于 BucketACLObjectACL 操作调用,请使用 Policies
  • 不需要 BucketCORS 操作调用,因为默认情况下所有存储桶都已为所有 HTTP 动词启用 CORS。
  • 对于 BucketWebsite 操作调用,请使用 caddynginx
  • 对于 BucketAnalyticsBucketMetricsBucketLogging 操作调用,请使用 存储桶通知