文档

mc ilm rule edit

Changed in version 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
Required

要修改对象生命周期管理规则的 MinIO 部署中,存储桶的 alias 和完整路径。 例如:

mc ilm rule edit myminio/mydata
--id
Required

规则的唯一 ID。使用 mc ilm rule ls 列出存储桶规则,并获取要修改规则的 id

--disable
Optional

停用该规则,但保留该规则以供后续使用。 当规则被禁用时,对象不会迁移或过期。

--enable
Optional

启用规则以迁移或使对象过期。

--prefix
Optional

将管理规则限制为特定的存储桶前缀。

例如:

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

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

--expire-all-object-versions
Optional

New in version mc: RELEASE.2024-02-24T01-33-20Z

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

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

New in version MinIO: RELEASE.2024-05-01T01-11-10Z

该标志*仅*适用于最新版本**不**是 delete marker 的对象。

--expire-days
Optional

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

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

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

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

与以下选项互斥:

--expire-delete-marker
Optional

指定该选项可让 MinIO 删除没有剩余对象版本的对象的 delete marker。 具体来说,delete marker 是给定对象*唯一*剩余的“版本”。

该选项与以下选项互斥:

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

--noncurrent-expire-days
Optional

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

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

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

--noncurrent-expire-newer
Optional

在应用过期前要保留的对象 non-current 版本数量。 超出指定数量的较旧 non-current 版本会过期。

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

--noncurrent-transition-days
Optional

对象处于 non-current 状态(即被该对象更新版本替换)后经过多少天, MinIO 将该对象版本标记为可迁移。系统主机时间到达该日历日期后, MinIO 会将对象迁移到 --transition-tier 指定的 远程存储层。

该选项对未启用版本控制的存储桶无效。需要指定 --noncurrent-transition-tier

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

如果远程层是另一个 MinIO 部署,可将值设置为 0,使新对象立即满足迁移到远程层的条件。

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

--noncurrent-transition-tier
Optional

MinIO transitions noncurrent objects versions 所使用的远程存储层。 指定一个通过 mc ilm tier add 创建的远程存储层。

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

--tags
Optional

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

该选项与以下选项互斥:

--transition-days
Optional

对象创建后经过多少个日历天,MinIO 会将对象标记为可迁移。 MinIO 会将对象迁移到 --transition-tier 指定的远程存储层。 以整数指定天数,例如 30 表示 30 天。 如果远程层是另一个 MinIO 部署,可将值设置为 0,使新对象立即满足迁移到远程层的条件。

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

需要指定 --transition-tier

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

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