文件

mc ilm rule add

在版本 RELEASE.2022-12-24T15-21-38Z 中變更:mc ilm rule rm 取代了 mc ilm add

語法

mc ilm rule add 命令會將物件生命週期管理規則新增至儲存桶。

此命令支援新增 轉換 (分層)過期 生命週期管理規則。

以下命令會將新的生命週期管理規則新增至 myminio 部署上的 mydata 儲存桶

mc ilm rule add --expire-days 90 --noncurrent-expire-days 30  myminio/mydata

mc ilm rule add --expire-delete-marker myminio/mydata

mc ilm rule add --transition-days 30 --transition-tier "COLDTIER" myminio/mydata

mc ilm rule add --noncurrent-transition-days 7 --noncurrent-transition-tier "COLDTIER"

已設定的規則具有以下效果

  • 刪除超過 90 天的物件

  • 在物件變成非當前版本 30 天後刪除

  • 如果物件沒有其他版本,則刪除 DeleteMarker 墓碑。

  • 將超過 30 天的物件轉換到 COLDTIER 遠端層級。

  • 將在變成非當前版本 7 天後的物件轉換到 COLDTIER 遠端層級。

此命令具有以下語法

mc [GLOBALFLAGS] ilm rule add                               \
                 [--prefix string]                          \
                 [--tags string]                            \
                 [--expire-days "integer"]                  \
                 [--expire-all-object-versions]             \
                 [--expire-delete-marker]                   \
                 [--transition-days "string"]               \
                 [--transition-tier "string"]               \
                 [--noncurrent-expire-days "integer"]       \
                 [--noncurrent-expire-newer "integer"]      \
                 [--noncurrent-transition-days "integer"]   \
                 [--noncurrent-transition-tier "string"]    \
                 [--site-gt "string"]                       \
                 [--size-lt "string"]                       \
                 ALIAS
  • 方括號 [] 表示選用參數。

  • 在同一行共用的參數是相互依賴的。

  • 使用管道符號 | 分隔的參數是互斥的。

將範例複製到文字編輯器,並在終端機/殼層中執行命令之前,根據需要修改。

參數

ALIAS
必要

要新增物件生命週期管理規則的 MinIO 部署上的 別名 和儲存桶。

例如

mc ilm rule add myminio/mydata
--prefix
選用

將管理規則限制為特定的物件前綴。

例如

mc ilm rule add --prefix "meetingnotes/" myminio/mydata --expire-days "90"

此命令會建立一個規則,該規則會在 myminio 別名的 mydata 儲存桶中,任何具有 meetingnotes/ 前綴的物件在 90 天後過期。

--tags
選用

一個或多個以 (&) 符號分隔的鍵值對,用於描述物件標籤,以篩選套用生命週期組態規則的物件。

此選項與以下選項互斥

--expire-all-object-versions
選用

在版本 mc 中新增:RELEASE.2024-02-24T01-33-20Z

使物件的所有當前**和**非當前版本過期。請與 --expire-days 選項搭配使用,以指定掃描器程序在多少天之後應該刪除物件的所有版本。

掃描器 處理此命令後,部署中不會保留該物件的任何版本。

在 MinIO 版本中變更:RELEASE.2024-05-01T01-11-10Z

此標誌*僅*適用於最新版本**不**具有刪除標記的物件。

--expire-days
選用

建立物件後要保留的天數。MinIO 會在指定天數過後將物件標示為刪除。以整數指定天數,例如 30 表示 30 天。

對於版本化的儲存桶,過期規則僅適用於*當前*物件版本。請使用 --noncurrent-expire-days 標誌或 --expire-all-object-versions 標誌,將過期行為套用至非當前物件版本。

MinIO 使用 掃描器程序 來檢查物件是否符合所有已設定的生命週期管理規則。由於高 IO 工作負載或系統資源有限而導致的掃描速度緩慢可能會延遲生命週期管理規則的應用。如需更多資訊,請參閱 生命週期管理物件掃描器

與以下選項互斥

如需有關物件過期的更完整文件,請參閱 物件過期物件刪除

--expire-delete-marker
選用

指定此選項,以指示 MinIO 移除沒有剩餘物件版本的物件的刪除標記。具體而言,刪除標記是指定物件的*唯一*剩餘「版本」。

此選項與以下選項互斥

MinIO 使用 掃描器程序 來檢查物件是否符合所有已設定的生命週期管理規則。由於高 IO 工作負載或系統資源有限而導致的掃描速度緩慢可能會延遲生命週期管理規則的應用。如需更多資訊,請參閱 生命週期管理物件掃描器

如需有關物件過期的更完整文件,請參閱 物件過期物件刪除

--transition-days
選用

自物件建立起多少個日曆天後,MinIO 會將物件標示為符合轉換資格。MinIO 會將物件轉換到指定給 --transition-tier 的已設定遠端層級。以整數指定天數,例如 30 表示 30 天。

對於版本化的儲存桶,轉換規則僅適用於*當前*物件版本。請使用 --noncurrent-transition-days 選項,將轉換行為套用至非當前物件版本。

需要指定 --transition-tier

MinIO 使用 掃描器程序 來檢查物件是否符合所有已設定的生命週期管理規則。由於高 IO 工作負載或系統資源有限而導致的掃描速度緩慢可能會延遲生命週期管理規則的應用。如需更多資訊,請參閱 生命週期管理物件掃描器

如需有關物件轉換的更完整文件,請參閱 物件轉換(「分層」)

--transition-tier
選用

MinIO 轉換物件 的遠端層級。指定由 mc ilm tier add 建立的現有遠端層級。

如果指定 --transition-days,則為必要。

--noncurrent-expire-days
選用

在物件版本變成*非當前*版本(即,該物件的不同版本現在是 HEAD)後要保留的天數。MinIO 會在指定天數過後,將非當前物件版本標示為刪除。

此選項的行為與 S3 NoncurrentVersionExpiration 動作相同。

MinIO 使用 掃描器程序 來檢查物件是否符合所有已設定的生命週期管理規則。由於高 IO 工作負載或系統資源有限而導致的掃描速度緩慢可能會延遲生命週期管理規則的應用。如需更多資訊,請參閱 生命週期管理物件掃描器

--noncurrent-transition-days
選用

物件變成非當前版本(即,被該相同物件的較新版本取代)後多少天,MinIO 會將物件版本標示為符合轉換資格。一旦系統主機的日期時間超過該日曆日期,MinIO 就會將物件轉換到指定給 --transition-tier 的已設定遠端層級。

此選項對未版本化的儲存桶沒有作用。需要指定 --noncurrent-transition-tier

此選項的行為與 S3 NoncurrentVersionTransition 動作相同。

MinIO 使用 掃描器程序 來檢查物件是否符合所有已設定的生命週期管理規則。由於高 IO 工作負載或系統資源有限而導致的掃描速度緩慢可能會延遲生命週期管理規則的應用。如需更多資訊,請參閱 生命週期管理物件掃描器

--noncurrent-transition-tier
選用

MinIO 將非當前物件版本轉換到的遠端層。 指定由 mc ilm tier add 建立的遠端層。

--noncurrent-expire-newer
選用

要保留的非當前物件版本最大數量,從最新到最舊排序。

使用此標記以先進先出的方式保留檔案的特定數量過去版本。 在保留最大數量的非當前版本後,MinIO 會將任何剩餘的較舊非當前物件版本標記為符合過期的條件。

下表列出了一些物件版本及其基於 --noncurrent-expire-newer 3 的過期資格。

v5 (當前版本)

當前版本不受 ILM 規則影響。

v4

已保留

v3

已保留

v2

已保留

v1

已標記為過期

MinIO 保留當前版本 v5。 MinIO 也保留接下來 3 個非當前版本,從最新的開始。 這表示 MinIO 會標記 v4v3v2 以保留三個非當前版本。

v1 將是第四個非當前版本,超出要保留的非當前版本限制,因此 MinIO 會將 v1 標記為過期。

更新此標記的數字只會影響物件的未標記版本。 如果您增加要保留的數字,任何已標記為過期的版本都不會變更。

MinIO 使用 掃描器程序 來檢查物件是否符合所有已設定的生命週期管理規則。由於高 IO 工作負載或系統資源有限而導致的掃描速度緩慢可能會延遲生命週期管理規則的應用。如需更多資訊,請參閱 生命週期管理物件掃描器

--size-gt
選用

新版本:RELEASE.2023-12-02T02-03-28Z

選取大於指定值的物件。 輸入數字和單位的數值,例如 5GiB 表示 5 吉比位元組。

有效單位包括

後綴

單位大小

k

KB (千位元組,1000 位元組)

m

MB (百萬位元組,1000 千位元組)

g

GB (吉位元組,1000 百萬位元組)

t

TB (兆位元組,1000 吉位元組)

ki

KiB (千比位元組,1024 位元組)

mi

MiB (百萬比位元組,1024 千比位元組)

gi

GiB (吉比位元組,1024 百萬比位元組)

ti

TiB (太比位元組,1024 吉比位元組)

--size-lt
選用

新版本:RELEASE.2023-12-02T02-03-28Z

選取小於指定值的物件。 輸入數字和單位的數值,例如 1M 表示 1 百萬位元組。

有效單位包括

後綴

單位大小

k

KB (千位元組,1000 位元組)

m

MB (百萬位元組,1000 千位元組)

g

GB (吉位元組,1000 百萬位元組)

t

TB (兆位元組,1000 吉位元組)

ki

KiB (千比位元組,1024 位元組)

mi

MiB (百萬比位元組,1024 千比位元組)

gi

GiB (吉比位元組,1024 百萬比位元組)

ti

TiB (太比位元組,1024 吉比位元組)

全域標記

此命令支援任何全域標記

範例

在經過天數後使所有儲存桶內容過期

使用 mc ilm rule add--expire-all-object-versions--expire-days 標記,以標記所有當前和非當前儲存桶內容,使其在物件建立後經過一定天數後過期

mc ilm rule add ALIAS/PATH --expire-all-object-versions --expire-days "DAYS"
  • ALIAS 替換為 S3 相容主機的 別名

  • PATH 替換為 S3 相容主機上儲存桶的路徑。

  • DAYS 替換為每個物件過期的天數。 例如,指定 30 以在物件建立後 30 天使其過期。

將前綴的非當前物件版本轉換到不同的層

mc ilm rule add--prefix--transition-tier 一起使用,以將物件的較舊非當前版本轉換到不同的儲存層。

mc ilm rule add --prefix "doc/" --transition-days "90" --transition-tier "MINIOTIER-1"  \
       --noncurrent-transition-days "45" --noncurrent-transition-tier "MINIOTIER-2"    \
       myminio/mybucket

此命令會查看 myminio 部署上 mybucket 儲存桶中具有 doc/ 前綴的內容。

  • 前綴中超過 90 天的當前物件會移動到 MINIOTIER-1 儲存層。

  • 前綴中超過 45 天的非當前物件會移動到 MINIOTIER-2 儲存層。

  • MINIOTIER-1MINIOTIER-2 都已透過 mc admin tier add 建立。

使前綴中的所有物件過期,保留當前物件版本比非當前物件版本更長的時間

mc ilm rule add 命令與 --prefix--expire-days--noncurrent-expire-days 一起使用,以在不同的時間使物件的當前和非當前版本過期。

mc ilm rule add --prefix "doc/" --expire-days "300" --noncurrent-expire-days "100" myminio/mybucket

此命令會查看 myminio 部署上 mybucket 儲存桶中具有 doc/ 前綴的內容。

  • 當前物件在 300 天後過期。

  • 非當前物件在 100 天後過期。

轉換前綴 /doc 中大小大於 1MiB 的非當前版本

mc ilm rule add 命令與 --prefix--size-gt--noncurrent-expire-days 一起使用,以在不同的時間使物件的當前和非當前版本過期。

mc ilm rule add --prefix "doc/" --size-gt 1MiB --transition-days "90" --transition-tier "MINIOTIER-1" \
      --noncurrent-transition-days "45" --noncurrent-transition-tier "MINIOTIER-1" \
      myminio/mybucket/

此命令會查看 myminio 部署上 mybucket 儲存桶中具有 doc/ 前綴的內容。

此命令選取下列物件

  • 大於 1MiB 且超過 90 天的當前物件。

  • 大於 1MiB 且超過 45 天的非當前物件。

選取的物件會轉換到 MINIOTIER-1

移除刪除標記

以下命令會移除物件的刪除標記,其中刪除標記是物件唯一保留的版本。

mc ilm rule add ALIAS/PATH --expire-delete-marker
  • ALIAS 替換為 S3 相容主機的 別名

  • PATH 替換為 S3 相容主機上儲存桶的路徑。

必要權限

如需新增規則所需的權限,請參閱父命令的必要權限

行為

生命週期管理物件掃描器

MinIO 使用 掃描器程序 來檢查物件是否符合所有已設定的生命週期管理規則。由於高 IO 工作負載或系統資源有限而導致的掃描速度緩慢可能會延遲生命週期管理規則的應用。如需更多資訊,請參閱 生命週期管理物件掃描器

過期與轉換

MinIO 支援在同一個儲存桶或儲存桶前綴中指定過期和轉換規則。無論物件的轉換狀態如何,MinIO 都可以對物件執行過期規則。使用 mc ilm rule ls 來檢視目前配置的物件生命週期管理規則,以了解過期和轉換規則之間可能存在的任何交互作用。

過期已刪除物件的所有版本

MinIO Server RELEASE.2024-05-01T01-11-10Z 開始,MinIO 支援刪除最新版本為刪除標記的物件的所有版本。MinIO 僅支援使用 JSON 的此功能。

要新增此功能,首先使用 mc ilm rule export 匯出要修改的規則。修改您將規則匯出的檔案,加入類似以下的額外 JSON。

<DelMarkerObjectExpiration>
    <Days> 10 </Days>
</DelMarkerObjectExpiration>

此範例 JSON 會在 10 天後過期已刪除物件的所有版本。修改 <Days> 元素中的值,以設定您想要在刪除或過期物件後等待的天數。

S3 相容性

mc 命令行工具的建構是為了與 AWS S3 API 相容,並且已在 MinIO 和 AWS S3 上進行測試,以確保預期的功能和行為。

MinIO 不對其他 S3 相容服務提供任何保證,因為它們的 S3 API 實作未知,因此不支援。雖然 mc 命令可能會如文件所述運作,但任何此類使用方式的風險都由您自行承擔。