機器翻譯

作業 Incremental Copy Blob 會將來源分頁 Blob 的快照集複製到目的地分頁 Blob。 只有先前複製快照集的差異會傳送至目的地。 複製的快照集是原始快照集的完整複本,您可以像往常一樣讀取或複製它們。 自 REST 版本 2016-05-31 起,支援此 API。

要求

您可以依照下列方式建構 Incremental Copy Blob 要求。 建議使用 HTTPS。 將 myaccount 取代為您的記憶體帳戶名稱、 mycontainer 取代為您的容器名稱,並將 myblob 取代為目的地 Blob 的名稱。 comp查詢參數的值incrementalcopy為 ,表示此要求是建立累加快照集。

PUT 方法要求 URI HTTP 版本
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=incrementalcopy HTTP/1.1

模擬記憶體服務 URI

當您對仿真的記憶體服務提出要求時,請將模擬器主機名和 Azure Blob 儲存體 服務埠指定為 127.0.0.0.1:10000,後面接著仿真的記憶體帳戶名稱。 此外,藉由將 comp 查詢參數 incrementalcopy設定為 ,表示此要求是用於累加複製。

PUT 方法要求 URI HTTP 版本
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=incrementalcopy HTTP/1.1

如需詳細資訊,請參閱 使用 Azurite 模擬器進行本機 Azure 記憶體開發

URI 參數

您可以在要求 URI 上指定下列其他參數。

參數 描述
timeout 選擇性。 timeout 參數以秒為單位。 如需詳細資訊,請參閱 設定 Blob 記憶體作業的逾時

要求標頭

下表描述必要的和選用的要求標頭。

要求標頭 描述
Authorization 必要。 指定授權配置、帳戶名稱和簽章。 如需詳細資訊,請參閱授權對 Azure 儲存體提出要求
Datex-ms-date 必要。 指定要求的「國際標準時間」(UTC)。 如需詳細資訊,請參閱授權對 Azure 儲存體提出要求
x-ms-version 所有授權要求的必要專案,以及匿名要求的選擇性要求。 指定用於這個要求的作業版本。 如需詳細資訊,請參閱 Azure 儲存體服務的版本
If-Modified-Since 選擇性。 DateTime 值。 只有在指定日期/時間修改目的地 Blob 時,才能指定此條件式標頭以複製 Blob。 如果目的地 Blob 尚未修改,Blob 記憶體會傳回狀態代碼 412 (前置條件失敗) 。
If-Unmodified-Since 選擇性。 DateTime 值。 指定此條件式標頭,只有在目的地 Blob 自指定的日期/時間之後尚未修改時,才複製 Blob。 如果目的地 Blob 已修改,Blob 記憶體會傳回狀態代碼 412 (前置條件失敗) 。
If-Match 選擇性。 ETag 值。 ETag指定這個條件式標頭的值以複製 Blob,只有當指定的ETag值符合ETag現有目的地 Blob 的值時。 ETag如果目的地 Blob 的 不符合ETag指定的 If-Match,Blob 記憶體會傳回狀態代碼 412 (前置條件失敗) 。
If-None-Match 選擇性。 ETag值,或通配符 (*) 。

ETag指定這個條件式標頭的值以複製 Blob,只有當指定的ETag值不符合ETag目的地 Blob 的值時。

指定通配符 (*) 來執行作業,只有在目的地 Blob 不存在時。

如果不符合指定的條件,Blob 記憶體會傳回狀態代碼 412 (前置條件失敗) 。
x-ms-copy-source:name 必要。 指定來源分頁 Blob 快照集的名稱。

此值是長度上限為 2 kibibytes 的 URL, (KiB) 指定分頁 Blob 快照集。 此值應該像出現在要求 URI 中一樣以 URL 編碼。 來源 Blob URI 可以透過下列兩種方式之一獲得授權:

來源 Blob URI 可以參考分頁 Blob 快照集,但必須包含共用存取簽章 (在快照集基底 Blob 上建立的 SAS) 令牌。 SAS 的已簽署資源 (sr) 欄位應設定為 b。 例如:https://<account-name>.blob.core.windows.net/<container-name>/<page-blob-name>?snapshot=2022-07-23T00:14:45.3964054Z&sp=r&st=2022-07-23T00:15:38Z&se=2022-07-23T08:15:38Z&spr=https&sv=2021-06-08&sr=b&sig=<signature>

來源 Blob URI 可以參考公用分頁 Blob 快照集;例如, https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime>
x-ms-client-request-id 選擇性。 提供客戶端產生的不透明值,其中包含設定記錄時記錄在記錄中的 1-KiB 字元限制。 強烈建議您使用此標頭,將用戶端活動與伺服器收到的要求相互關聯。 如需詳細資訊,請參閱監視 Azure Blob 儲存體

要求本文

無。

回應

回應包括 HTTP 狀態碼和一組回應標頭。

狀態碼

成功的作業會傳回狀態碼「202 (已接受)」。 如需狀態代碼的相關信息,請參閱 狀態和錯誤碼

回應標頭

這項作業的回應包括下列標頭。 回應也可以包含額外的標準 HTTP 標頭。 所有標準標頭都符合 HTTP/1.1 通訊協議規格

語法 描述
ETag 包含值,您可以用來有條件地執行作業。 此值以引弧括住。
Last-Modified 上次修改 Blob 的時間與日期。 如需詳細資訊,請參閱 標頭中的日期/時間值的表示

Blob 上的任何寫入作業 (包括 Blob 元數據或屬性上的更新,) 變更 Blob 的上次修改時間。
x-ms-request-id 可唯一識別已提出的要求,並可用於對要求進行疑難解答。 如需詳細資訊,請參閱 針對 API 作業進行疑難解答
x-ms-version 指出用來執行要求的 Blob 記憶體版本。
Date UTC 日期/時間值,指出起始響應的時間。 服務會產生此值。
x-ms-copy-id: <id> 此複製作業的字串識別碼。 Get Blob Properties搭配 使用 來檢查此複製作業的狀態,或傳遞至 Abort Copy Blob 以停止暫止的複本。
x-ms-copy-status: pending 複製作業的狀態。 這一律為擱置中,表示複本已啟動且正在進行中。
x-ms-client-request-id 可用來針對要求和對應的回應進行疑難解答。 如果此標頭存在於要求中,這個標頭的值會等於標頭的值 x-ms-client-request-id 。 此值最多為 1,024 個可見的 ASCII 字元。 x-ms-client-request-id如果要求中沒有標頭,則不會出現在回應中。

回應本文

無。

範例回應

以下是執行累加複製的要求回應範例:

Response Status:
HTTP/1.1 202 Accepted

Response Headers: 
Last-Modified: <date> 
ETag: "0x8CEB669D794AFE2"
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: cc6b209a-b593-4be1-a38a-dde7c106f402
x-ms-version: 2016-05-31
x-ms-copy-id: 1f812371-a41d-49e6-b123-f4b542e851c5
x-ms-copy-status: pending
Date: <date> 

授權

在 Azure 記憶體中呼叫任何數據存取作業時,需要授權。 下一節說明如何授權作業的Incremental Copy Blob目的地物件。 個別授權來源 Blob 或檔案的存取權,如要求標頭的詳細 x-ms-copy-source 數據中所述。

Azure 記憶體支援使用 Microsoft Entra ID 來授權 Blob 數據的要求。 使用 Microsoft Entra ID,您可以使用 Azure 角色型存取控制 (Azure RBAC) ,將許可權授與安全性主體。 安全性主體可能是使用者、群組、應用程式服務主體或 Azure 受控識別。 安全性主體會由 Microsoft Entra ID 驗證,以傳回 OAuth 2.0 令牌。 權杖接著可以用來授權對 Blob 服務的要求。

若要深入瞭解使用 Microsoft Entra ID 授權,請參閱使用 Microsoft Entra ID 授權 Blob 的存取權。

權限

以下是 Microsoft Entra 使用者、群組或服務主體呼叫Incremental Copy Blob作業所需的 RBAC 動作,以及包含此動作的最低特殊許可權 Azure RBAC 角色:

若要深入瞭解如何使用 Azure RBAC 指派角色,請參閱 指派 Azure 角色以存取 Blob 數據

備註

累加複製的目的地必須不存在,或必須已從相同的來源 Blob 使用先前的累加複製來建立。 建立之後,目的地 Blob 會永久與來源相關聯,而且只能用於累加複製。 Get Blob PropertiesList Blobs API 指出 Blob 是否為以這種方式建立的累加複製 Blob。

您無法直接下載累加複製 Blob。 唯一支援的作業為 Get Blob PropertiesIncremental Copy BlobDelete Blob。 您可以像往常一樣讀取和刪除複製的快照集。

您可以在服務上以異步方式執行累加複製,而且您必須輪詢完成。 如需如何輪詢暫止複本的詳細資訊, Copy Blob 請參閱 API。 複製完成時,目的地 Blob 會包含新的快照集。 API 會 Get Blob Properties 傳回新建立快照集的快照集時間。

第一次在目的地 Blob 上執行累加複製時,會建立新的 Blob,並具有從來源完整複製的快照集。 每個後續呼叫都會 Incremental Copy Blob 建立新的快照集,方法是只複製先前複製快照集的差異變更。

差異變更是透過在來源 Blob 快照集上發出 Get Page Ranges 呼叫,在伺服器上計算。 設定 prevsnapshot 為最近複製的快照集。 因此,對的相同限制 Get Page Ranges 也適用於 Incremental Copy Blob。 具體來說,您必須以遞增順序複製快照集,如果使用 或 Copy Blob重新建立Put Blob來源 Blob,則Incremental Copy Blob新的快照集將會失敗。

複製快照集所耗用的額外儲存空間是複製期間傳輸的差異數據大小。 您可以藉由在快照集上執行差異 Get Page Ranges API 呼叫來判斷此大小,以將其與先前的快照集進行比較。

另請參閱

授權對 Azure 記憶體的要求
狀態和錯誤碼
設定 Blob 記憶體作業的逾時