自動物件過期
此頁面上的每個程序都會建立一個新的物件生命週期管理規則,該規則會使 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 中移除。