自动对象过期
本页上的每个步骤都会创建一个新的对象生命周期管理规则,该规则会在 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"
使版本化的对象过期
使用 mc ilm rule add
使非当前对象版本和对象删除标记过期
要使非当前对象版本在特定天数后过期,请包含
--noncurrent-expire-days
。要使没有剩余版本的对象的删除标记过期,请包含
--expire-delete-marker
。
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
将
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 中删除该对象的天数。