文件

自動物件過期

本頁上的每個程序都會建立新的物件生命週期管理規則,該規則會使 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 相容主機的 別名

  • 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 相容主機的 別名

  • 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 中移除。