文档

自动对象过期

本页上的每个过程都会创建一个新的对象生命周期管理规则,该规则会过期 MinIO 桶上的对象。该过程支持以下用例:在某个时间段或日历日期之后移除“旧”对象。

需求

安装和配置 mc

本过程使用 mc 来执行 MinIO 集群上的操作。在具有访问源和目标集群网络的机器上安装 mc。有关下载和安装 mc 的说明,请参阅 mc 安装快速入门

使用 mc alias set 命令创建源 MinIO 集群和目标 S3 兼容服务的别名。别名创建需要为源和目标集群上的用户指定访问密钥。指定的用户必须具有 权限 以配置和应用过期操作。

必需权限

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"
      }
   ]
}

在指定天数后过期对象

使用 mc ilm rule add 以及 --expire-days 来在对象创建后的指定天数过期桶内容

mc ilm rule add ALIAS/PATH --expire-days "DAYS"
  • ALIAS 替换为 S3 兼容主机的 alias

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

  • DAYS 替换为对象过期后的天数。例如,指定 30 表示对象在创建 30 天后过期。

使版本化的对象过期

使用 mc ilm rule add 使非当前对象版本和对象删除标记过期。

mc ilm rule add ALIAS/PATH \
   --noncurrent-expire-days NONCURRENT_DAYS \
   --expire-delete-marker
  • 要使对象的所有版本过期,请包含 --expire-all-object-versions。此过期仅适用于最新或当前版本不是 DeleteMarker 的对象。

    mc ilm rule add ALIAS/PATH \
       --expire-all-object-versions
    
  • ALIAS 替换为 S3 兼容主机的 alias

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

  • NONCURRENT_DAYS 替换为使非当前对象版本过期的天数。例如,指定 30d 表示在版本是非当前版本至少 30 天后使该版本过期。

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

MinIO 服务器 RELEASE.2024-05-01T01-11-10Z 开始,MinIO 支持删除以删除标记为最新版本的全部对象版本。MinIO 通过 JSON 支持此类删除,而不是通过命令行。

要将此功能添加到规则,首先使用 mc ilm rule export 导出要修改的规则。使用类似以下内容的额外 JSON 修改导出的规则。

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

此示例 JSON 在 10 天后使已删除对象的全部版本过期。在 <Days> 元素中修改值,以设置删除对象后等待的天数,然后再使该对象过期并将其从 MinIO 中删除。