文档

自动对象过期

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