文档

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
必需

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

mc ilm rule edit myminio/mydata
--id
必需

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

--disable
可选

停止使用规则,但保留规则以备将来使用。禁用规则后,对象不会转换或过期。

--enable
可选

使用规则转换或使对象过期。

--prefix
可选

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

例如

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

该命令修改了一个规则,该规则在myminio别名的mydata存储桶中,对于具有meetingnotes/前缀的任何对象,在 90 天后使对象过期。

--expire-all-object-versions
可选

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

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

扫描程序处理此命令后,部署上将不再存在对象的任何版本。

MinIO 版本新增功能: RELEASE.2024-05-01T01-11-10Z

此标志**仅**适用于**不**以删除标记作为最新版本的那些对象。

--expire-days
可选

创建对象后保留对象的几天数。在指定的天数过去后,MinIO 将标记该对象以供删除。

使用此选项时请谨慎,因为其行为可能导致上传的对象立即过期。在指定的过期日期**之后**创建的任何对象都将自动有资格过期。同样,指定早于当前系统主机日期时间的日历日期将标记规则覆盖的所有对象以供删除。考虑在指定日历日期过去后立即删除使用此选项的任何 ILM 规则。

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

MinIO 使用扫描程序进程检查所有已配置的生命周期管理规则的对象。由于高 IO 工作负载或系统资源有限而导致的扫描速度缓慢可能会延迟生命周期管理规则的应用。有关更多信息,请参阅生命周期管理对象扫描程序

与以下选项互斥

--expire-delete-marker
可选

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

此选项与以下选项互斥

MinIO 使用扫描程序进程检查所有已配置的生命周期管理规则的对象。由于高 IO 工作负载或系统资源有限而导致的扫描速度缓慢可能会延迟生命周期管理规则的应用。有关更多信息,请参阅生命周期管理对象扫描程序对象删除

--noncurrent-expire-days
可选

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

此选项的行为与 S3NoncurrentVersionExpiration操作相同。

MinIO 使用扫描程序进程检查所有已配置的生命周期管理规则的对象。由于高 IO 工作负载或系统资源有限而导致的扫描速度缓慢可能会延迟生命周期管理规则的应用。有关更多信息,请参阅生命周期管理对象扫描程序

--noncurrent-expire-newer
可选

在应用过期之前要保留的对象的非当前版本数。超出指定数量的较旧非当前版本将过期。

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

--noncurrent-transition-days
可选

对象变为非当前(即被同一对象的较新版本替换)后的天数,在此之后 MinIO 将标记该对象版本有资格进行转换。一旦系统主机日期时间超过该日历日期,MinIO 就会将对象转换为配置的远程存储层,该存储层指定给--transition-tier

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

此选项的行为与 S3NoncurrentVersionTransition操作相同。

MinIO 使用扫描程序进程检查所有已配置的生命周期管理规则的对象。由于高 IO 工作负载或系统资源有限而导致的扫描速度缓慢可能会延迟生命周期管理规则的应用。有关更多信息,请参阅生命周期管理对象扫描程序

--noncurrent-transition-tier
可选

MinIO将非当前对象版本转换为的远程存储层。指定由mc ilm tier add创建的远程存储层。

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

--tags
可选

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

此选项与以下选项互斥

--transition-days
可选

从对象创建开始的日历天数,在此之后 MinIO 将标记对象有资格进行转换。MinIO 将对象转换为配置的远程存储层,该存储层指定给--transition-tier

对于版本化存储桶,转换规则仅适用于当前对象版本。使用--noncurrent-transition-days选项将转换行为应用于非当前对象版本。

需要指定--transition-tier

MinIO 使用扫描程序进程检查所有已配置的生命周期管理规则的对象。由于高 IO 工作负载或系统资源有限而导致的扫描速度缓慢可能会延迟生命周期管理规则的应用。有关更多信息,请参阅生命周期管理对象扫描程序

--transition-tier
可选

MinIO将对象转换到的远程存储层。指定由mc ilm tier add创建的远程存储层。

如果指定--transition-days,则需要此选项。

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

全局标志

此命令支持任何全局标志

示例

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

使用 mc ilm rule edit--id 修改现有的对象过期规则。

mc ilm rule edit ALIAS/PATH --id "RULEID" [FLAGS]
  • ALIAS 替换为 S3 兼容主机对应的 alias

  • PATH 替换为 S3 兼容主机上 Bucket 的路径。

  • RULEID 替换为对象生命周期管理规则的唯一 ID。使用 mc ilm rule ls 查找 RULEID

  • 指定任何其他标志以添加或修改生命周期管理规则。例如,指定 --transition-days 以覆盖规则的现有转换天数值。

禁用生命周期管理规则

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

mc ilm rule edit --id "RULEID" --disable myminio/mybucket
  • RULEID 替换为对象生命周期管理规则的唯一 ID。使用 mc ilm rule ls 查找 RULEID

  • myminio 替换为规则所在部署的 ALIAS。

  • mybucket 替换为规则所属的 Bucket。

所需权限

有关编辑规则所需的权限,请参阅父命令上的 所需权限

行为

过期已删除对象的全部版本

MinIO Server RELEASE.2024-05-01T01-11-10Z 开始,MinIO 支持删除其最新版本为删除标记的对象的所有版本。MinIO 仅支持使用 JSON 的此功能。

要添加此功能,首先使用 mc ilm rule export 导出要修改的规则。使用类似以下内容的其他 JSON 修改您导出的规则文件

<DelMarkerObjectExpiration>
    <Days> 10 </Days>
</DelMarkerObjectExpiration>

此示例 JSON 在 10 天后过期已删除对象的全部版本。将 <Days> 元素中的值修改为您希望在删除或过期对象后等待的天数。

S3 兼容性

命令行工具 mc 旨在与 AWS S3 API 兼容,并已在 MinIO 和 AWS S3 上针对预期功能和行为进行了测试。

MinIO 不对其他 S3 兼容服务提供任何保证,因为它们的 S3 API 实现未知,因此不受支持。虽然 mc 命令可能按文档记录的方式工作,但任何此类使用均需自行承担风险。