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。
- --prefix
- Optional
将管理规则限制为特定的存储桶前缀。
例如:
mc ilm rule edit --prefix "meetingnotes/" myminio/mydata --expire-days "90"
该命令会修改一条规则:对于
myminioALIAS 中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 会继续将存储在旧远程层上的对象请求路由到旧远程层。
- --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 会继续将存储在旧远程层上的对象请求路由到旧远程层。
全局参数
此命令支持 全局标志 中的任意选项。
示例
修改现有生命周期管理规则
使用带有 --id 的 mc ilm rule edit 修改现有对象过期规则:
mc ilm rule edit ALIAS/PATH --id "RULEID" [FLAGS]
将
PATH替换为 S3 兼容主机上存储桶的路径。将
RULEID替换为对象生命周期管理规则的唯一 ID。 使用mc ilm rule ls查找RULEID。指定任意附加标志以新增或修改生命周期管理规则。 例如,指定
--transition-days以覆盖该规则现有的迁移天数值。
禁用生命周期管理规则
使用带有 --disable 的 mc 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 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。