文档

对象自动过期

此页面上的每个过程都会创建一个新的对象生命周期管理规则,该规则会在 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 中删除。