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 天後過期。
- --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 會標記v4
、v3
和v2
以保留三個非當前版本。v1
將是第四個非當前版本,超出要保留的非當前版本限制,因此 MinIO 會將v1
標記為過期。更新此標記的數字只會影響物件的未標記版本。 如果您增加要保留的數字,任何已標記為過期的版本都不會變更。
MinIO 使用 掃描器程序 來檢查物件是否符合所有已設定的生命週期管理規則。由於高 IO 工作負載或系統資源有限而導致的掃描速度緩慢可能會延遲生命週期管理規則的應用。如需更多資訊,請參閱 生命週期管理物件掃描器。
全域標記
此命令支援任何全域標記。
範例
在經過天數後使所有儲存桶內容過期
使用 mc ilm rule add
與 --expire-all-object-versions
和 --expire-days
標記,以標記所有當前和非當前儲存桶內容,使其在物件建立後經過一定天數後過期
mc ilm rule add ALIAS/PATH --expire-all-object-versions --expire-days "DAYS"
將前綴的非當前物件版本轉換到不同的層
將 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-1
和MINIOTIER-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
必要權限
如需新增規則所需的權限,請參閱父命令的必要權限。
行為
生命週期管理物件掃描器
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 命令可能會如文件所述運作,但任何此類使用方式的風險都由您自行承擔。