文档

对象自动过期

此页面的每个过程都将创建一个新的对象生命周期管理规则,该规则会在 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 Server RELEASE.2024-05-01T01-11-10Z 开始,MinIO 支持删除具有删除标记作为最新版本的物体的全部版本。MinIO 使用 JSON 支持此类删除,而不是通过命令行。

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

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

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