機器翻譯
作業 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 儲存體提出要求。 |
Date 或 x-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 動作:Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write (,用於寫入現有 Blob) 或 Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action (,以將新的 Blob 寫入目的地)
- 最低特殊許可權內建角色:記憶體 Blob 數據參與者
若要深入瞭解如何使用 Azure RBAC 指派角色,請參閱 指派 Azure 角色以存取 Blob 數據。
備註
累加複製的目的地必須不存在,或必須已從相同的來源 Blob 使用先前的累加複製來建立。 建立之後,目的地 Blob 會永久與來源相關聯,而且只能用於累加複製。 Get Blob Properties
和 List Blobs
API 指出 Blob 是否為以這種方式建立的累加複製 Blob。
您無法直接下載累加複製 Blob。 唯一支援的作業為 Get Blob Properties
、 Incremental Copy Blob
與 Delete 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 呼叫來判斷此大小,以將其與先前的快照集進行比較。