文档基于2025-10-10日社区最终版构建     
切换到英文版    进入演示系统    进入交流社区

MinIO Documentation

mc ilm rule add

在版本 RELEASE.2022-12-24T15-21-38Z 中的变更:mc ilm rule rm替换mc ilm add.

语法

Themc ilm rule add该命令为存储桶添加对象生命周期管理规则。

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

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

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
  • Brackets[]表示可选参数。

  • 共享同一行的参数是相互依赖的。

  • 使用竖线分隔的参数|操作符是互斥的。

将示例复制到文本编辑器中,根据需要修改,然后在终端/Shell中运行命令。

参数

ALIAS
必需

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

例如:

mc ilm rule add myminio/mydata
--prefix
可选

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

例如:

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

该命令创建了一个使对象过期的规则mydatabucket of themyminioALIAS 在 90 天后适用于任何具有meetingnotes/prefix.

--tags
可选

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

此选项与以下选项互斥:

--expire-all-object-versions
可选

版本 mc 中的新功能:RELEASE.2024-02-24T01-33-20Z

使所有当前会话过期对象的非当前版本。 与以下内容一起使用:--expire-days指定对象的所有版本应在扫描程序处理多少天后删除的选项。

之后扫描仪处理此命令后,部署中将不再保留该对象的任何版本。

MinIO 版本变更说明:RELEASE.2024-05-01T01-11-10Z

这个标志适用于不适用于对象有一个删除标记作为最新版本。

--expire-days
可选

对象创建后保留的天数。 MinIO 会在指定天数过后将对象标记为删除。 请以整数形式指定天数,例如3030 天。

对于版本化存储桶,过期规则仅适用于当前object version. 使用以下任一方式:--noncurrent-expire-daysflag 或--expire-all-object-versions应用于非当前对象版本的过期行为标志。

MinIO 使用一个扫描器进程检查对象是否符合所有已配置的生命周期管理规则。 由于高IO工作负载或有限的系统资源导致的扫描缓慢可能会延迟生命周期管理规则的应用。 请参阅生命周期管理对象扫描器欲了解更多信息。

与以下选项互斥:

有关对象过期的更完整文档,请参阅对象过期对象删除.

--expire-delete-marker
可选

指定此选项以指示 MinIO 移除没有剩余对象版本的对象的删除标记。 具体来说,删除标记是给定对象的剩余“版本”。

此选项与以下选项互斥:

MinIO 使用一个扫描器进程检查对象是否符合所有已配置的生命周期管理规则。 由于高IO工作负载或有限的系统资源导致的扫描缓慢可能会延迟生命周期管理规则的应用。 请参阅生命周期管理对象扫描器欲了解更多信息。

有关对象过期的更完整文档,请参阅对象过期对象删除.

--transition-days
可选

从对象创建之日起的日历天数,超过该天数后 MinIO 会将对象标记为符合转换条件。 MinIO 将对象转换到指定的已配置远程层级。--transition-tier指定天数为整数,例如3030 天。 如果远程层是另一个 MinIO 部署,您可以将值设置为0将新对象标记为立即可过渡到远程层。

对于版本化存储桶,过渡规则仅适用于当前object version. 使用--noncurrent-transition-days将过渡行为应用于非当前对象版本的选项。

需要指定--transition-tier.

MinIO 使用一个扫描器进程检查对象是否符合所有已配置的生命周期管理规则。 由于高IO工作负载或有限的系统资源导致的扫描缓慢可能会延迟生命周期管理规则的应用。 请参阅生命周期管理对象扫描器欲了解更多信息。

有关对象过渡的更完整文档,请参阅对象转换("分层").

--transition-tier
可选

MinIO 所连接的远程层级过渡对象指定一个由现有远程层创建的mc ilm tier add.

如果指定则必需--transition-days.

--noncurrent-expire-days
可选

对象版本成为非当前版本后保留的天数非流动(即该对象的不同版本现在是HEADMinIO 在指定天数过后会将非当前对象版本标记为删除。

此选项的行为与 S3 相同NoncurrentVersionExpiration动作。

MinIO 使用一个扫描器进程检查对象是否符合所有已配置的生命周期管理规则。 由于高IO工作负载或有限的系统资源导致的扫描缓慢可能会延迟生命周期管理规则的应用。 请参阅生命周期管理对象扫描器欲了解更多信息。

--noncurrent-transition-days
可选

对象变为非当前版本(即被同一对象的新版本替换)后的天数,超过该天数后 MinIO 会将此对象版本标记为符合转移条件。 MinIO 将对象转移到为存储桶配置的远程存储层。--transition-tier一旦系统主机日期时间超过该日历日期。

此选项对非版本化存储桶没有影响。 需要指定--noncurrent-transition-tier.

此选项的行为与 S3 相同NoncurrentVersionTransition动作。

MinIO 使用一个扫描器进程检查对象是否符合所有已配置的生命周期管理规则。 由于高IO工作负载或有限的系统资源导致的扫描缓慢可能会延迟生命周期管理规则的应用。 请参阅生命周期管理对象扫描器欲了解更多信息。

--noncurrent-transition-tier
可选

MinIO 所连接的远程层级转换非当前对象版本指定一个由远程层创建的mc ilm tier add.

--noncurrent-expire-newer
可选

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

使用此标志以先进先出的方式保留文件的特定数量的过往版本。 在保留最大数量的非当前版本后,MinIO 会将任何剩余的较旧非当前对象版本标记为符合过期条件。

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

v5 (当前版本)

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

v4

保留

v3

保留

v2

保留

v1

标记为过期

MinIO 保留当前版本 v5。 MinIO 还保留下一个3non-current versions, starting with the newest. 这意味着 MinIO 标记v4, v3v2保留三个非当前版本。

v1这将是第四个非当前版本,超出了要保留的非当前版本限制,因此 MinIO 会标记v1到期。

更新此标志的数值仅影响未标记版本的对象。 如果增加要保留的版本数量,已标记为过期的任何版本不会发生更改。

MinIO 使用一个扫描器进程检查对象是否符合所有已配置的生命周期管理规则。 由于高IO工作负载或有限的系统资源导致的扫描缓慢可能会延迟生命周期管理规则的应用。 请参阅生命周期管理对象扫描器欲了解更多信息。

--size-gt
可选

版本 mc 中的新功能:RELEASE.2023-12-02T02-03-28Z

选择大于指定值的对象。 输入数值和单位,例如5GiB对于 5 gibibytes。

有效单位包括:

后缀

单元尺寸

k

KB (Kilobyte, 1000 Bytes)

m

MB (兆字节,1000千字节)

g

GB (Gigabyte,1000 Megabytes)

t

TB (太字节,1000 GB)

ki

KiB (Kibibyte, 1024 字节)

mi

MiB (Mebibyte, 1024 Kibibytes)

gi

GiB (Gibibyte, 1024 Mebibytes)

ti

TiB (Tebibyte, 1024 Gibibytes)

--size-lt
可选

版本 mc 中的新功能:RELEASE.2023-12-02T02-03-28Z

选择小于指定值的对象。 输入数值和单位,例如1M对于 1 兆字节。

有效单位包括:

后缀

单元尺寸

k

KB (Kilobyte, 1000 Bytes)

m

MB (兆字节,1000千字节)

g

GB (Gigabyte,1000 Megabytes)

t

TB (太字节,1000 GB)

ki

KiB (Kibibyte, 1024 字节)

mi

MiB (Mebibyte, 1024 Kibibytes)

gi

GiB (Gibibyte, 1024 Mebibytes)

ti

TiB (Tebibyte, 1024 Gibibytes)

全局标志

此命令支持任何全局标志.

示例

设置存储桶内容在指定天数后过期

使用mc ilm rule add随着--expire-all-object-versions--expire-days标记所有当前和非当前存储桶内容在对象创建后经过指定天数后过期的标志:

mc ilm rule add ALIAS/PATH --expire-all-object-versions --expire-days "DAYS"
  • 替换ALIAS随着aliasS3兼容主机的

  • 替换PATH使用指向 S3 兼容主机上存储桶的路径。

  • 替换DAYS在指定天数后使每个对象过期。 例如,指定30使对象在创建30天后过期。

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

使用mc ilm rule addwith--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

This command looks at the contents with thedoc/prefix in themybucket桶上的myminio部署。

  • 前缀中超过90天的当前对象将移动到MINIOTIER-1存储层。

  • 前缀中超过45天的非当前对象将移动到MINIOTIER-2存储层。

  • BothMINIOTIER-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

This command looks at the contents with thedoc/prefix in themybucket桶上的myminio部署。

  • 当前对象在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/

This command looks at the contents with thedoc/prefix in themybucket桶上的myminio部署。

该命令选择以下对象:

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

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

所选对象过渡到MINIOTIER-1.

移除删除标记

以下命令会移除删除标记,当该删除标记是对象仅存的唯一版本时。

mc ilm rule add ALIAS/PATH --expire-delete-marker
  • 替换ALIAS随着aliasS3兼容主机的

  • 替换PATH使用指向 S3 兼容主机上存储桶的路径。

Note

要删除一个以删除标记作为最新版本的对象的所有版本,包括删除标记考虑使用批次过期.

所需权限

要添加规则所需的权限,请参阅所需权限在父命令上。

行为

生命周期管理对象扫描器

MinIO 使用一个扫描器进程检查对象是否符合所有已配置的 生命周期管理规则。由于高IO工作负载或 有限的系统资源导致的慢速扫描可能会延迟生命周期管理规则的应用。参见生命周期管理对象扫描器欲了解更多信息。

过期 vs 转换

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

S3 Compatibility

Themc命令行工具专为兼容 AWS S3 API 而构建,并已通过 MinIO 和 AWS S3 测试,确保功能与行为符合预期。

MinIO 不提供对其他 S3 兼容服务的保证,因为它们的 S3 API 实现方式未知,因此不受支持。尽管mc命令可能按文档所述工作,任何此类使用风险自负。