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