Skip to main content
此產品有較新版本可以使用。
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

如何刪除物件

貢獻者

由於S3儲存區生命週期到期或ILM原則要求到期、因此可直接回應用戶端要求或自動刪除物件。StorageGRID瞭解可刪除物件的不同方式、StorageGRID 以及如何處理刪除要求、有助於您更有效地管理物件。

使用下列兩種方法之一刪除物件:StorageGRID

  • 同步刪除:StorageGRID 當物件接收到用戶端刪除要求時、會立即移除所有物件複本。用戶端會被告知刪除作業在複本移除之後成功。

  • 物件會排入刪除佇列:StorageGRID 當收到刪除要求時、物件會排入刪除佇列、並立即通知用戶端刪除作業已成功。物件複本稍後會透過背景ILM處理移除。

刪除物件時StorageGRID 、利用最佳化刪除效能、最小化可能刪除的待處理項目、以及最快釋出空間的方法、來刪除物件。

下表摘要說明StorageGRID 各個方法的使用時機。

執行刪除的方法 使用時

物件會排入佇列以供刪除

當下列*任一*條件為真時:

  • 自動物件刪除已由下列其中一個事件觸發:

    • S3儲存區生命週期組態的到期日或天數已達。

    • ILM規則中指定的最後一個時間週期已過。

  • 附註: * 如果儲存庫中的物件已啟用 S3 物件鎖定功能、或是已指定保留日期但尚未符合、則無法刪除該物件。

  • S3或Swift用戶端要求刪除、其中一或多個條件為真:

    • 無法在 30 秒內刪除複本、例如物件位置暫時無法使用。

    • 背景刪除佇列閒置。

立即移除物件(同步刪除)

當S3或Swift用戶端提出刪除要求、並符合*全部*下列條件時:

  • 所有複本均可在30秒內移除。

  • 背景刪除佇列包含要處理的物件。

當 S3 或 Swift 用戶端提出刪除要求時、 StorageGRID 會先將物件新增至刪除佇列。然後切換至執行同步刪除。確保後臺刪除佇列有要處理的物件、StorageGRID 讓處理器能夠更有效率地處理刪除作業、特別是對於低並行用戶端、同時防止用戶端刪除待處理記錄。

刪除物件所需的時間

物件的刪除方式StorageGRID 可能會影響系統的執行方式:

  • 執行同步刪除時、最多需要30秒才能將結果傳回給用戶端。StorageGRID StorageGRID這表示刪除的速度似乎較慢、即使複本實際移除速度比StorageGRID 將物件排入佇列以供刪除時更快。

  • 如果您在大量刪除期間密切監控刪除效能、可能會注意到刪除某些物件之後、刪除率似乎會變慢。當從佇列物件移至執行同步刪除時、就會發生此變更StorageGRID 。刪除率明顯降低、並不代表物件複本移除速度較慢。相反地、這表示平均而言、空間現在可以更快釋出。

如果您要刪除大量物件、而且優先要快速釋放空間、請考慮使用用戶端要求來刪除物件、而非使用ILM或其他方法來刪除物件。一般而言、當用戶端執行刪除作業時、空間會更快釋出、因為StorageGRID 使用同步刪除功能時、會有更多空間。

刪除物件之後、可用空間所需的時間取決於下列幾個因素:

  • 物件複本是同步移除、還是排入佇列稍後移除(適用於用戶端刪除要求)。

  • 其他因素、例如當物件複本排入移除佇列時、網格中的物件數目或網格資源的可用度(適用於用戶端刪除和其他方法)。

如何刪除S3版本控制物件

啟用S3儲存區的版本管理時、StorageGRID 無論是來自S3用戶端、S3儲存區生命週期到期、或ILM原則需求、均會遵循Amazon S3回應刪除要求的行為。

物件版本化時、物件刪除要求不會刪除物件的目前版本、也不會釋放空間。相反地、物件刪除要求會建立零位元組刪除標記、做為物件的目前版本、使物件的舊版「非目前」。 當物件刪除標記是目前版本且沒有非目前版本時、它會變成過期的物件刪除標記。

即使物件尚未移除、StorageGRID 但功能上的功能仍然如同物件的目前版本已無法使用。對該物件的要求會傳回404 NotFound.但是、由於非目前物件資料尚未移除、因此指定物件非目前版本的要求可能會成功。

若要在刪除版本化物件時釋放空間、或移除刪除標記、請使用下列其中一項:

  • *S3 用戶端要求 * :在 S3 刪除物件要求中指定物件版本 ID (DELETE /object?versionId=ID)。請記住、此要求只會移除指定版本的物件複本(其他版本仍佔用空間)。

  • 生命週期:使用 NoncurrentVersionExpiration 在儲存庫生命週期組態中採取行動。當符合指定的NoncurrentDays數量時、StorageGRID 不同時更新的物件版本會永久移除所有複本。這些物件版本無法還原。

    NewerNoncurrentVersions 貯體生命週期組態中的動作會指定保留在版本化 S3 儲存區中的非目前版本數。如果非最新版本多於 NewerNoncurrentVersions 指定 StorageGRID 會在非目前日期天數值結束時移除舊版。。 NewerNoncurrentVersions 臨界值會覆寫 ILM 所提供的生命週期規則、這表示非目前物件的版本在中 NewerNoncurrentVersions 如果 ILM 要求刪除臨界值、則會保留臨界值。

    若要移除過期的物件刪除標記、請使用 Expiration 使用下列其中一個標記執行動作: ExpiredObjectDeleteMarkerDays`或 `Date

  • * ILM *: "複製作用中原則" 並在新原則中新增兩個 ILM 規則:

    • 第一條規則:使用「非目前時間」做為參考時間、以符合物件的非目前版本。在中 "建立 ILM 規則精靈的步驟 1 (輸入詳細資料)"、請針對「僅將此規則套用至舊版物件版本(在啟用版本設定的 S3 儲存區中)?」問題選取 * 是 * 。

    • 第二條規則:使用 * 擷取時間 * 來符合目前版本。「非目前時間」規則必須出現在 * 擷取時間 * 規則上方的原則中。

      註 ILM 無法用於移除目前的物件刪除標記。使用 S3 用戶端要求或 S3 Bucket 生命週期來移除目前的物件刪除標記。
  • * 刪除貯體中的物件 * :請使用租戶管理員 "刪除所有物件版本"包括刪除貯體中的標記。

    刪除版本化物件時、 StorageGRID 會建立零位元組刪除標記、做為物件的目前版本。必須先移除所有物件和刪除標記、才能刪除版本化的儲存庫。

    • 刪除在 StorageGRID 11.7 或更早版本中建立的標記只能透過 S3 用戶端要求移除、但不能由 ILM 、貯體生命週期規則或刪除貯體作業中的物件移除。

    • 從在 StorageGRID 11.8 或更新版本中建立的貯體中刪除標記、可由 ILM 、貯體生命週期規則、貯體作業中的刪除物件、或明確刪除 S3 用戶端。StorageGRID 11.8 或更新版本中過期的刪除標記必須由儲存庫生命週期規則或明確的 S3 用戶端要求移除、並指定版本 ID 。