版本層級寫入一次,讀取許多不可變 Blob 數據的 WORM 原則

一次版本層級寫入,讀取許多 (WORM) 原則是可在帳戶、容器或版本層級設定的不變性原則類型。 若要深入瞭解 Azure Blob 儲存體 的不可變記憶體,請參閱以寫入一次不可變記憶體儲存業務關鍵 Blob 數據,讀取許多 (WORM) 狀態

可用性

新帳戶的帳戶層級支援版本層級不變性 (VLW) 原則,以及新帳戶和現有帳戶/容器的容器和 Blob 層級。 一般用途 v2 和進階區塊 Blob 帳戶都支援這些原則。 階層命名空間帳戶不支援此功能。

版本相依性

版本層級原則要求 為記憶體帳戶啟用 Blob 版本控制 。 若要了解如何啟用 Blob 版本設定,請參閱啟用和管理 Blob 版本設定。 請注意,啟用版本設定可能會產生計費影響。 如需詳細資訊,請參閱 Blob 版本設定的定價和計費一節。

啟用版本設定之後,在第一次上傳 Blob 時,該版本的 Blob 即為目前的版本。 每次覆寫 Blob 時,系統都會建立新的版本來儲存 Blob 的先前狀態。 當您刪除 Blob 目前的版本時,目前的版本會變回先前的版本,並且會保留到明確刪除為止。 先前的 Blob 版本具有限時保留原則,當目前的版本成為舊版時就會生效。

如果預設原則適用於儲存體帳戶或容器,則當覆寫作業建立先前的版本時,新的目前版本會繼承帳戶或容器的預設原則。

每個版本都只能設定一個限時保留原則。 版本也可能設定了一個法務保存措施。

若要了解如何設定版本層級的限時保留原則,請參閱 設定 Blob 版本的不變性原則

啟用和原則設定

搭配版本層級 WORM 使用不可變的原則是兩個步驟的程式。 首先,啟用版本層級不變性。 然後,您可以設定版本層級不變性原則。

若要在記憶體帳戶層級設定原則,您必須先在記憶體帳戶上啟用版本層級 WORM。 您只能在帳戶建立時執行此動作。 沒有選項可針對預先存在的帳戶啟用版本層級 WORM。

在帳戶層級設定版本層級固定記憶體原則的圖表。

若要在容器層級設定原則,您必須先在帳戶或容器上啟用版本層級 WORM。

如果您打算在容器上啟用版本層級 WORM,Microsoft 建議您在容器建立期間啟用它。 不過,您可以將已啟用版本層級的 WORM 容器移轉至已啟用版本層級的 WORM 容器。 如果您選擇不移轉容器,您仍然可以在該容器上設定容器層級的WORM原則,但該容器上將無法使用設定 Blob 層級原則的選項。

在容器層級設定版本層級固定記憶體原則的圖表。

若要在 Blob 層級設定原則,您必須在帳戶或容器上啟用版本層級 WORM。 沒有選項可在 Blob 層級啟用版本層級的 WORM;它必須繼承。

在 Blob 層級設定版本層級不可變記憶體原則的圖表。

遷移

現有的容器可以支援版本層級不變性,但必須先進行移轉程式。 此程序可能需要一些時間。 啟用之後,就無法移除該容器的版本層級 WORM 支援。 針對一個儲存體帳戶,您一次只能移轉 10 個容器。 如需有關移轉容器以支援版本層級不變性的詳細資訊,請參閱移轉現有容器以支援版本層級的不變性

設定目前版本的原則

啟用儲存體帳戶或容器的版本層級不變性支援後,您可以選擇設定帳戶或容器的預設限時保留原則。 當您為帳戶或容器設定預設的限時保留原則,並上傳 Blob 時,Blob 會繼承該預設原則。 您也可以針對該 Blob 設定自訂原則,以在上傳時選擇覆寫任何 Blob 的預設原則。

如果帳戶或容器的預設限時保留原則未鎖定,則繼承預設原則的 Blob 目前版本也會有未鎖定的原則。 上傳個別 Blob 之後,您可以縮短或延長目前 Blob 版本的原則保留期間,或刪除目前的版本。 即使帳戶或容器上的預設原則保持未鎖定,您也可以鎖定目前版本的原則。

如果帳戶或容器的預設限時保留原則已鎖定,則繼承預設原則的 Blob 目前版本也會有鎖定的原則。 不過,如果您在上傳 Blob 時覆寫默認原則,只要設定該 Blob 的原則,該 Blob 的原則就會保持解除鎖定,直到您明確鎖定它為止。 鎖定目前版本的原則時,您可以延長保留間隔,但無法刪除原則或縮短保留間隔。

如果未針對儲存體帳戶或容器設定任何預設原則,在上傳 Blob 時您可以使用自訂原則或不使用原則。

如果儲存體帳戶或容器上的預設原則已修改,則該容器內物件的原則會維持不變,即使這些原則繼承自預設原則也一樣。

下表顯示在上傳時,可在 Blob 上設定限時保留原則的各種選項:

帳戶或容器上的預設原則狀態 上傳使用預設原則的 Blob 上傳使用自訂原則的 Blob 上傳沒有原則的 Blob
帳戶或容器的預設原則 (未鎖定) 上傳的 Blob 使用預設的未鎖定原則 上傳的 Blob 使用自訂的未鎖定原則 上傳的 Blob 沒有原則
帳戶或容器的預設原則 (已鎖定) 上傳的 Blob 使用預設的已鎖定原則 上傳的 Blob 使用自訂的未鎖定原則 上傳的 Blob 沒有原則
帳戶或容器上沒有任何預設原則 N/A 上傳的 Blob 使用自訂的未鎖定原則 上傳的 Blob 沒有原則

在先前的版本上設定原則

啟用版本控制時,對 Blob 的寫入或刪除作業會建立該 Blob 新的先前版本,以在作業之前儲存 Blob 的狀態。 依預設,先前的 Blob 版本具有限時保留原則,適用於目前的版本,若存在,則當目前版本變成先前的版本時就會生效。 新的目前版本會繼承容器上的原則 (如果有的話)。

如果先前版本所繼承的原則未鎖定,則可以縮短或延長保留間隔,也可以刪除原則。 即使目前版本上的原則未鎖定,也可以針對該版本鎖定先前版本的原則。

如果先前版本所繼承的原則已鎖定,則可以延長保留間隔。 原則無法刪除,也不能縮短保留間隔。 如果目前的版本沒有設定原則,則先前的版本不會繼承任何原則。

您可以設定版本的自訂原則。 如果修改了目前版本的原則,即使原則繼承自目前的版本,現有先前版本的原則仍會保持不變。

刪除

一旦針對不可變原則啟用帳戶或容器之後,就無法刪除該帳戶或容器,直到它是空的為止。 要注意的主要事項是,在版本層級的 WORM 帳戶或容器上設定不可變的原則並不重要,如果為原則啟用,則很重要。 一旦完成,帳戶或容器就必須是空的,才能刪除。

此圖顯示刪除具有版本層級不變性原則之帳戶的作業順序。

案例

案例 禁止的作業 Blob 保護 容器保護 帳戶保護
Blob 版本受作用中保留原則保護和/或有合法保存生效 刪除 Blob、設定 Blob 元數據和放置頁面 無法刪除 Blob 版本。 無法寫入使用者元數據。
使用放置 Blob、放置區塊清單複製 Blob 覆寫 Blob 會建立新的第 1 版。
如果容器中至少有一個 Blob 存在,則無論是否已鎖定或解除鎖定原則,容器刪除作業都會失敗。 如果至少有一個容器已啟用版本層級不可變記憶體,或帳戶已啟用,則帳戶刪除 儲存體 失敗。
Blob 版本受作用中保留原則保護,沒有任何合法保存生效 設定 Blob 元數據和放置頁面 Blob 版本受作用中保留原則保護,沒有任何合法保存生效 可以刪除 Blob 版本。
使用放置 Blob、放置區塊清單複製 Blob 覆寫 Blob 會建立新的第 1 版。
如果至少有一個容器包含具有已鎖定限時保留原則的 Blob 版本,儲存體帳戶刪除會失敗。
解除鎖定的原則不會提供刪除保護。

1 Blob 版本一律不可變的內容。 如果已針對儲存體帳戶啟用版本設定,則將作業寫入至區塊 Blob 會建立新版本,但是放置區塊作業例外。

限制

一個帳戶中只能有 10,000 個容器設定唯一的時間型保留原則:不過,您可以設定帳戶層級原則,由超過10,000個容器繼承。

下一步