共用方式為


複製 Blob

Copy Blob 作業可將 Blob 複製到儲存體帳戶中的目的地。

在 2012-02-12 版和更新版本中,作業的來源 Copy Blob 可以是任何 Azure 記憶體帳戶中認可的 Blob。

從 2015-02-21 版開始,作業的來源 Copy Blob 可以是任何 Azure 儲存器帳戶中的 Azure 檔案。

注意

只有 2012 年 6 月 7 日或之後建立的記憶體帳戶,才能讓 Copy Blob 作業從另一個記憶體帳戶複製。

要求

您可以建構 Copy Blob 要求,如下所示。 我們建議使用 HTTPS。 將 myaccount 取代為您的記憶體帳戶名稱、 將 mycontainer 取代為您的容器名稱,並將 myblob 取代為目的地 Blob 的名稱。

從 2013-08-15 版開始,如果目的地 Blob 位於與來源 Blob 相同的帳戶中,您可以為目的地 Blob 指定共用存取簽章 (SAS) 。 從 2015-04-05 版開始,如果目的地 Blob 位於不同的記憶體帳戶中,您也可以指定目的地 Blob 的共用存取簽章。

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

模擬記憶體服務的 URI

當您對仿真的記憶體服務提出要求時,請指定模擬器主機名和 Azure Blob 儲存體 埠,127.0.0.1:10000後面接著模擬記憶體帳戶的名稱:

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

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

URI 參數

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

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

要求標頭

下表描述必要和選擇性的要求標頭:

要求標頭 描述
Authorization 必要。 指定授權配置、帳戶名稱和簽章。 如需詳細資訊,請參閱授權對 Azure 儲存體提出要求
Datex-ms-date 必要。 指定要求的「國際標準時間」(UTC)。 如需詳細資訊,請參閱授權對 Azure 儲存體提出要求
x-ms-version 所有已授權要求都需要。 如需詳細資訊,請參閱 Azure 儲存體服務的版本
x-ms-meta-name:value 選擇性。 指定與 Blob 相關聯的使用者定義名稱/值組。 如果未指定名稱/值組,作業會將元數據從來源 Blob 或檔案複製到目的地 Blob。 如果指定了一或多個名稱/值組,則會使用指定的元數據建立目的地 Blob,而且不會從來源 Blob 或檔案複製元數據。

從 2009-09-19 版開始,元數據名稱必須遵守 C# 識別碼的命名規則。 如需詳細資訊,請參閱 命名和參考容器、Blob 和元數據
x-ms-tags 選擇性。 在 Blob 上設定指定的查詢字串編碼標記。 標籤不會從複製來源複製。 如需詳細資訊,請參閱。 2019-12-12 版和更新版本支援。
x-ms-source-if-modified-since 選擇性。 DateTime 值。 只有在指定日期/時間修改來源 Blob 時,才能指定此條件式標頭以複製 Blob。 如果來源 Blob 尚未修改,Blob 記憶體會傳回狀態代碼 412 (前置條件失敗) 。 如果來源是 Azure 檔案,則無法指定此標頭。
x-ms-source-if-unmodified-since 選擇性。 DateTime 值。 只有在非指定日期/時間修改來源 Blob 時,才能指定此條件式標頭以複製 Blob。 如果來源 Blob 已修改,Blob 記憶體會傳回狀態代碼 412 (前置條件失敗) 。 如果來源是 Azure 檔案,則無法指定此標頭。
x-ms-source-if-match 選擇性。 ETag 值。 只有當來源 Blob 的值符合指定的值時 ETag ,才指定這個條件式標頭來複製來源 Blob。 如果值不相符,Blob 記憶體會傳回狀態代碼 412 (前置條件失敗) 。 如果來源是 Azure 檔案,則無法指定此標頭。
x-ms-source-if-none-match 選擇性。 ETag 值。 只有當 Blob 的值不符合指定的值時 ETag ,才指定此條件式標頭來複製 Blob。 如果值相同,Blob 記憶體會傳回狀態代碼 412 (前置條件失敗) 。 如果來源是 Azure 檔案,則無法指定此標頭。
If-Modified-Since 選擇性。 DateTime 值。 只有在指定日期/時間修改目的地 Blob 時,才能指定此條件式標頭以複製 Blob。 如果目的地 Blob 尚未修改,Blob 記憶體會傳回狀態代碼 412 (前置條件失敗) 。
If-Unmodified-Since 選擇性。 DateTime 值。 只有在非指定日期/時間修改目的地 Blob 時,才能指定此條件式標頭以複製 Blob。 如果目的地 Blob 已修改,Blob 記憶體會傳回狀態代碼 412 (前置條件失敗) 。
If-Match 選擇性。 ETag 值。 ETag只有在指定的ETag值符合ETag現有目的地 Blob 的值時,才指定這個條件標頭的值來複製 Blob。 如果值不相符,Blob 記憶體會傳回狀態代碼 412 (前置條件失敗) 。
If-None-Match 選擇性。 ETag值,或通配符 (*) 。

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

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

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

從 2012-02-12 版開始,此值可以是最多 2 個 kibibytes 的 URL, (KiB) 指定 Blob。 值應該會編碼為 URL,因為它會顯示在要求 URI 中。

相同記憶體帳戶中來源 Blob 上的讀取作業可以透過共用密鑰獲得授權。 從 2017-11-09 版開始,您也可以使用 Microsoft Entra ID 來授權來源 Blob 上的讀取作業。 不過,如果來源是另一個記憶體帳戶中的 Blob,來源 Blob 必須是公用的,或者必須透過共用存取簽章獲得授權。 如果來源 Blob 是公用的,則不需要授權才能執行複製作業。

從 2015-02-21 版開始,來源物件可以是 Azure 檔案儲存體 中的檔案。 如果來源物件是將複製到 Blob 的檔案,則來源檔案必須透過共用存取簽章獲得授權,無論是位於相同帳戶或不同帳戶中。

只有 2012 年 6 月 7 日或之後建立的 Copy Blob 記憶體帳戶,才能從另一個記憶體帳戶複製作業。

以下是來源物件 URL 的一些範例:

- https://myaccount.blob.core.windows.net/mycontainer/myblob
- https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime>
- https://myaccount.blob.core.windows.net/mycontainer/myblob?versionid=<DateTime>

當來源物件是 Azure 檔案儲存體 中的檔案時,來源 URL 會使用下列格式。 請注意,URL 必須包含檔案的有效 SAS 令牌。

- https://myaccount.file.core.windows.net/myshare/mydirectorypath/myfile?sastoken

在 2012-02-12 之前的版本中,Blob 只能在相同的帳戶內複製,而且來源名稱可以使用下列格式:

- 具名容器中的 Blob: /accountName/containerName/blobName
- 具名容器中的快照集: /accountName/containerName/blobName?snapshot=<DateTime>
- 根容器中的 Blob: /accountName/blobName
- 根容器中的快照集: /accountName/blobName?snapshot=<DateTime>
x-ms-lease-id:<ID> 如果目的地 Blob 為作用中租用,則為必要項目。 為此標頭指定的租用識別碼必須符合目的地 Blob 的租用識別碼。 如果要求不包含租用標識碼或標識碼無效,作業會失敗,狀態代碼為412 (前置條件失敗) 。

如果指定此標頭,且目的地 Blob 目前沒有作用中的租用,作業會失敗,狀態代碼為 412 (前置條件失敗) 。

在 2012-02-12 版和更新版本中,此值必須指定租用 Blob 的作用中無限租用。 有限持續時間租用標識碼失敗,狀態代碼為412 (前置條件失敗) 。
x-ms-source-lease-id: <ID> 2012-02-12 之前的版本選擇性, (2012-02-12 和更新版本不支援) 。 只有在提供的租用標識符符合來源 Blob 的作用中租用標識符時,才指定此標頭來執行 Copy Blob 作業。

如果指定此標頭,且來源 Blob 目前沒有作用中的租用,作業會失敗,狀態代碼為 412 (前置條件失敗) 。
x-ms-client-request-id 選擇性。 提供客戶端產生的不透明值,其中包含設定記錄時記錄在記錄中的 1-KiB 字元限制。 強烈建議您使用此標頭,將用戶端活動與伺服器收到的要求相互關聯。
x-ms-access-tier 選擇性。 指定要在目標 Blob 上設定的階層。 此標頭僅適用於進階帳戶上的分頁 Blob,且版本為 2017-04-17 和更新版本。 如需支援層的完整清單,請參閱 VM 的高效能進階記憶體和受控磁碟。 區塊 Blob 版本 2018-11-09 和更新版本支援此標頭。 Blob 記憶體或 v2 帳戶 常規用途 支援區塊 Blob 階層處理。 合法值為HotCoolColdArchive注意:Cold 2021-12-02 版和更新版本支持階層。 如需區塊 Blob 階層處理的詳細資訊,請參閱經常性 存取、非經常性存取和封存儲存層
x-ms-rehydrate-priority 選擇性。 指出要解除凍結封存 Blob 的優先順序。 區塊 Blob 版本 2019-02-02 和更新版本支援此標頭。 有效值為 HighStandard。 您只能在 Blob 上設定優先順序一次。 對相同 Blob 的後續要求,將會忽略此標頭。 沒有這個標頭的預設優先權為 Standard
x-ms-seal-blob 選擇性。 2019-12-12 版或更新版本支援。 此標頭僅適用於附加 Blob。 它會在複製作業完成之後密封目的地 Blob。
x-ms-immutability-policy-until-date 版本 2020-06-12 和更新版本。 指定要在 Blob 上設定的保留日期。 這是可以保護 Blob 免於修改或刪除的日期。 其遵循RFC1123格式。
x-ms-immutability-policy-mode 版本 2020-06-12 和更新版本。 指定要在 Blob 上設定的不變性原則模式。 有效值為 unlockedlocked。 值 unlocked 表示使用者可以藉由增加或減少保留日期來變更原則。 值 locked 表示禁止這些動作。
x-ms-legal-hold 版本 2020-06-12 和更新版本。 指定要在 Blob 上設定的法律保留。 有效值為 truefalse

只有在符合指定的條件時, x-ms-if-tags 此作業才支援和 x-ms-source-if-tags 條件標頭成功。 如需詳細資訊,請參閱 指定 Blob 記憶體作業的條件式標頭

要求本文

無。

回應

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

狀態碼

在 2012-02-12 版和更新版本中,成功的作業會傳回狀態代碼 202 (已接受) 。

在 2012-02-12 之前的版本中,成功的作業會傳回狀態碼「201 (已建立)」。

如需狀態代碼的相關信息,請參閱 狀態和錯誤碼

回應標頭

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

回應標頭 描述
ETag 在 2012-02-12 版和更新版本中,如果複本完成,此標頭會 ETag 包含目的地 Blob 的值。 如果複製未完成,標頭會 ETag 包含複製作業開始時所建立的空白 Blob 值。

在 2012-02-12 之前的版本中,此標頭會 ETag 傳回目的地 Blob 的值。

在 2011-08-18 版和更新版本中, ETag 此值是以引弧括住。
Last-Modified 傳回復制作業至目的地 Blob 完成的日期/時間。
x-ms-request-id 可唯一識別所提出的要求。 您可以使用此標頭對要求進行疑難解答。 如需詳細資訊,請參閱 針對 API 作業進行疑難解答
x-ms-version 指出用來執行要求的 Blob 記憶體版本。 對 2009-09-19 及更新版本提出要求會傳回此標頭。
Date UTC 日期/時間值,指出服務傳送響應的時間。
x-ms-copy-id: <id> 版本 2012-02-12 和更新版本。 提供此複製作業的字串識別碼。 使用 Get BlobGet Blob Properties 來檢查此複製作業的狀態,或傳遞至 Abort Copy Blob 以取消擱置的複製作業。
x-ms-copy-status: <success ¦ pending> 版本 2012-02-12 和更新版本。 指出複製作業的狀態,其中包含下列值:

- success:作業成功完成。
- pending:作業正在進行中。
x-ms-version-id: <DateTime> 版本 2019-12-12 和更新版本。 依 Blob 版本唯一識別 Blob。 您可以在後續要求中使用這個不透明值來存取此版本的 Blob。
x-ms-client-request-id 可用來針對要求和對應的回應進行疑難解答。 如果此標頭存在於要求中,此標頭的值等於標頭的值 x-ms-client-request-id ,且此值最多為 1,024 個可見的 ASCII 字元。 x-ms-client-request-id如果要求中沒有標頭,則回應中不會顯示此標頭。

回應本文

無。

範例回應

下列程式代碼是複製 Blob 的要求範例回應:

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: 2015-02-21  
x-ms-copy-id: 1f812371-a41d-49e6-b123-f4b542e851c5  
x-ms-copy-status: pending
x-ms-version-id: <DateTime>  
Date: <date>  
  

授權

在 Azure 記憶體中呼叫任何數據存取作業時,需要授權。 下表描述如何授權作業的 Copy Blob 目的地和來源物件:

物件型別 Microsoft Entra ID 授權 共用存取簽章 (SAS) 授權 共用金鑰授權 (或共用金鑰 Lite)
目的地 Blob Yes Yes Yes
相同記憶體帳戶中的來源 Blob Yes Yes Yes
另一個記憶體帳戶中的來源 Blob No No

如果要求在要求標頭中 x-ms-tags 指定標記,呼叫端必須符合 設定 Blob 標記 作業的授權需求。

您可以授權 Copy Blob 作業,如下所述。 請注意,不同記憶體帳戶中的來源 Blob 必須透過具有 讀取 (r) 許可權的 SAS 令牌個別授權。 如需來源 Blob 授權的詳細資訊,請參閱要求標頭 x-ms-copy-source的詳細數據。

重要

Microsoft 建議搭配使用 Microsoft Entra ID 搭配受控識別來授權 Azure 記憶體的要求。 相較於共用密鑰授權,Microsoft Entra ID 提供更高的安全性和易於使用性。

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 使用者、群組、受控識別或服務主體呼叫Copy Blob作業所需的 RBAC 動作,以及包含此動作的最低特殊許可權 Azure RBAC 角色:

目的地 Blob

相同記憶體帳戶中的來源 Blob

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

備註

在 2012-02-12 版和更新版本中, Copy Blob 作業可以異步完成。 此作業會傳回可用來檢查或取消複製作業的複製標識碼。 由於複製作業的異步本質,Blob 記憶體會盡最大努力複製 Blob。 Blob 服務會在伺服器資源未由其他工作使用時複製 Blob,因此不保證會在指定的時間範圍內立即啟動或完成複本。

複製作業的來源 Blob 可以是區塊 Blob、附加 Blob、分頁 Blob 或快照集。 如果目的地 Blob 已經存在,則必須使用與來源 Blob 相同的 Blob 類型。 所有現有的目的地 Blob 都會被覆寫。 複製作業正在進行時,您無法修改目的地 Blob。

在 2015-02-21 版和更新版本中,複製作業的來源也可以是 Azure 檔案儲存體 中的檔案。 如果來源是檔案,目的地必須是區塊 Blob。

帳戶內多項暫止的 Copy Blob 作業可能會循序處理。 目的地 Blob 只能有一個未處理的 Copy Blob 作業。 換句話說,Blob 不能是多個擱置 Copy Blob 作業的目的地。 嘗試將 Blob 複製到已暫止複製作業的目的地 Blob 失敗,狀態代碼為 409 (衝突) 。

只有 2012 年 6 月 7 日或之後建立的記憶體帳戶,才能讓 Copy Blob 作業從另一個記憶體帳戶複製。 嘗試從另一個記憶體帳戶複製到 2012 年 6 月 7 日之前建立的帳戶,其狀態代碼為 400 (不正確的要求) 。

Copy Blob 作業一律會複製整個來源 Blob 或檔案。 不支援複製特定範圍的位元組或一組區塊。

Copy Blob 作業可採取下列任何一種形式:

  • 您可以將來源 Blob 複製到具有不同名稱的目的地 Blob。 目的地 Blob 可以是相同 Blob 類型的現有 Blob, (區塊、附加或分頁) ,也可以是複製作業所建立的新 Blob。

  • 您可以將來源 Blob 複製到具有相同名稱的目的地 Blob,有效地取代目的地 Blob。 這類複製作業會移除所有未認可的區塊,並覆寫 Blob 的中繼資料。

  • 您可以將 Azure 檔案儲存體 中的來源檔案複製到目的地 Blob。 目的地 Blob 可以是現有的區塊 Blob,也可以是複製作業所建立的新區塊 Blob。 不支援從檔案複製到分頁 Blob 或附加 Blob。

  • 您可以將快照集複製到其基底 Blob 之上。 藉由將快照集升級到基底 Blob 的位置,您可以還原舊版的 Blob。

  • 您可以將快照集複製到具有不同名稱的目的地 Blob。 產生的目的地 Blob 是可寫入的 Blob,而不是快照集。

當您從分頁 Blob 複製時,Blob 記憶體會建立來源 Blob 長度的目的地分頁 Blob。 一開始,分頁 Blob 會包含所有零。 然後列舉來源頁面範圍,並複製非空白的範圍。

對於區塊 Blob 或附加 Blob,Blob 記憶體會先建立長度為零的已認可 Blob,再從這項作業傳回。

當您從區塊 Blob 複製時,會複製所有已認可的區塊及其區塊標識碼。 未認可的區塊不會複製。 在複製作業結束時,目的地 Blob 的已認可區塊計數與來源相同。

當您從附加 Blob 複製時,會複製所有認可的區塊。 在複製作業結束時,目的地 Blob 的已認可區塊數目會少於或相同數目,與來源 Blob 相同。

對於所有 Blob 類型,您可以在目的地 Blob 上呼叫 Get BlobGet Blob Properties ,以檢查複製作業的狀態。 複製作業完成時,將會認可最終 Blob。

當複製作業的來源提供 ETag 值時,複製作業進行時來源的任何變更都會造成該作業失敗。 嘗試在複本進行時變更目的地 Blob 將會失敗,狀態代碼為 409 (衝突) 。 如果目的地 Blob 為無限期租用,必須將租用識別碼傳遞至 Copy Blob。 不允許使用有限期的租用。

ETag區塊 Blob 的值會在作業啟動時和作業完成時變更Copy BlobETag當作業啟動時,分頁 Blob 的值會變更Copy Blob,而且會在複製作業期間持續變更。 只有在完整複製作業完成之後,才能透過 Get 命令顯示區塊 Blob 的內容。

複製 Blob 屬性、標籤和元數據

複製 Blob 時,下列系統屬性會複製到具有相同值的目的地 Blob:

  • Content-Type

  • Content-Encoding

  • Content-Language

  • Content-Length

  • Cache-Control

  • Content-MD5

  • Content-Disposition

  • x-ms-blob-sequence-number 僅分頁 Blob 的 ()

  • x-ms-committed-block-count 僅限附加 Blob 的 (,以及僅針對 2015-02-21 版)

如果 Blob 是區塊 Blob,來源 Blob 的認可封鎖清單也會複製到目的地 Blob。 系統不會複製任何未認可的區塊。

目的地 Blob 的大小一律與來源 Blob 相同。 目的地 Blob 標頭 Content-Length 的值符合來源 Blob 的該標頭值。

當來源 Blob 和目的地 Blob 相同時,Copy Blob 會移除所有未認可的區塊。 如果在此情況下指定中繼資料,則會以新的中繼資料覆寫現有的中繼資料。

x-ms-tags如果標頭提供目的地 Blob 的標記,則必須進行查詢字串編碼。 標記索引鍵和值必須符合命名和長度需求,如 設定 Blob 標籤中所指定。

x-ms-tags標頭最多可以包含 2 KB 的標記。 如果您需要更多標記,請使用 Set Blob Tags 作業。

x-ms-tags如果標頭未提供標記,則不會從來源 Blob 複製標記。

複製租用的 Blob

作業 Copy Blob 只會從來源 Blob 讀取,因此來源 Blob 的租用狀態並不重要。 不過,作業會在 Copy Blob 複製作業啟動時儲存 ETag 來源 Blob 的值。 ETag如果在複製作業完成之前變更值,作業就會失敗。 您可以在複製作業期間租用來源 Blob,以防止來源 Blob 遭到變更。

如果目的地 Blob 有作用中無限期租用,您必須在 Copy Blob 作業的呼叫中指定其租用識別碼。 如果您指定的租用是作用中的有限期間租用,則此呼叫會失敗,狀態代碼為 412 (前置條件失敗) 。 複製作業擱置時,目的地 Blob 上的任何租用作業都失敗,狀態代碼為 409 (衝突) 。 不論您要複製到與來源具有不同名稱的目的地 Blob、複製到與來源同名的目的地 Blob,或在其基底 Blob 上升級快照集,目的地 Blob 上的無限租用會以這種方式鎖定。

如果用戶端在尚不存在的 Blob 上指定租用標識符,Blob 記憶體會針對針對 2013-08-15 版和更新版本提出的要求傳回狀態代碼 412 () 前置條件失敗) 。 針對舊版,Blob 記憶體會傳回狀態代碼 201 (Created) 。

複製 Blob 快照集

複製來源 Blob 時,來源 Blob 的任何快照集或版本都不會複製到目的地。 當目的地 Blob 以復本覆寫時,與目的地 Blob 相關聯的任何快照集或版本會在其名稱下保持不變。

您可以執行複製作業,以在其基底 Blob 上升級快照集,只要其位於在線層 (經常性存取或非經常性存取) 。 如此一來,您就可以還原舊版的 Blob。 快照集會保留,但會以可讀取/寫入的複本覆寫其目的地。

複製 Blob 版本

您可以執行複製作業,以在其基底 Blob 上升級版本,只要其位於在線層 (經常性存取或非經常性存取) 即可。 如此一來,您就可以還原舊版的 Blob。 版本會維持不變,但其目的地會以可讀取和寫入的複本覆寫。

複製封存的 Blob

從 2018-11-09 版開始,您可以將封存的 Blob 複製到相同儲存體帳戶記憶體的新 Blob。 來源 Blob 會保留在封存層中。 當來源 Blob 是封存的 Blob 時,要求必須包含 x-ms-access-tier 標頭,這表示目的地 Blob 的層。 目的地 Blob 必須位於在線層。 您無法複製到封存層中的 Blob。

從 2021-02-12 版開始,只要目的地帳戶位於與來源帳戶相同的區域中,您就可以將封存的 Blob 複製到不同記憶體帳戶中的在線層。

如果來源 Blob 已解除凍結,要求可能會失敗。

如需區塊 Blob 層級分層的詳細資訊,請參閱 經常性存取、非經常性存取和封存儲存層

使用擱置的複製作業 (2012-02-12 版和更新版本)

Copy Blob如果作業以異步方式完成,請使用下表根據傳回的狀態代碼來判斷下一個步驟:

狀態碼 意義
202 (已接受),x-ms-copy-status:成功 複製作業成功完成。
202 (已接受),x-ms-copy-status:暫止 複製作業尚未完成。 使用 Get Blob Properties 來輪詢目的地 Blob,以檢查標頭, x-ms-copy-status 直到作業完成或失敗為止。
4xx,500 或 503 複製作業失敗。

Copy Blob 作業期間及之後,目的地 Blob 的屬性會包含 Copy Blob 作業的複製識別碼及來源 Blob 的 URL。 當作業完成時,Blob 記憶體會將時間與結果值寫入目的地 Blob 的屬性 (successfailedaborted) 。 如果作業有 failed 結果,標頭 x-ms-copy-status-description 會包含錯誤詳細數據字串。

擱置 Copy Blob 的作業有兩周逾時。 在兩周後未完成的複製嘗試,並將字段設為 failed ,並將 x-ms-copy-status-description 設定為 500 (OperationCancelled) 保留空白 Blobx-ms-copy-status。 在複製作業期間可能發生的間歇性非嚴重錯誤,可能會阻礙作業的進度,但不會造成失敗。 在此情況下,x-ms-copy-status-description 會描述間歇性的錯誤。

在複製作業期間修改或快照目的地 Blob 的任何嘗試都會失敗,狀態代碼 409 (衝突) 「複製 Blob 進行中」。

如果您呼叫 Abort Copy Blob 作業,您會看到 x-ms-copy-status:aborted 標頭。 目的地 Blob 會有完整的元數據和 0 個字節的 Blob 長度。 您可以重複原始呼叫, Copy Blob 再次嘗試複製作業。

Copy Blob如果作業以同步方式完成,請使用下表來判斷複製作業的狀態:

狀態碼 意義
202 (已接受),x-ms-copy-status:成功 複製作業成功完成。
4xx,500 或 503 複製作業失敗。

階層是針對進階儲存層繼承的。 對於區塊 Blob,如果未 x-ms-access-tier 提供,覆寫目的地 Blob 將會從目的地繼承經常性存取層或非經常性存取層。 覆寫封存的 Blob 將會失敗。 如需區塊 Blob 層級分層的詳細資訊,請參閱 經常性存取、非經常性存取和封存儲存層

計費

定價要求可能源自使用 Blob 記憶體 API 的用戶端,無論是直接透過 Blob 記憶體 REST API,還是來自 Azure 記憶體用戶端連結庫。 這些要求會累算每個交易的費用。 交易類型會影響帳戶的收費方式。 例如,讀取交易會累算到與寫入交易不同的計費類別。 下表顯示根據記憶體帳戶類型的要求計費類別 Copy Blob

作業 儲存體帳戶類型 計費類別
複製 Blob (目的地帳戶1) 進階區塊 Blob
標準一般用途 v2
標準一般用途 v1
寫入作業
複製 Blob (來源帳戶2) 進階區塊 Blob
標準一般用途 v2
標準一般用途 v1
讀取作業

1目的地帳戶會支付一筆交易來起始寫入的費用。
2當來源對象位於不同的帳戶時,來源帳戶會對來源物件的每個讀取要求產生一筆交易。

若要瞭解指定計費類別的定價,請參閱 Azure Blob 儲存體 定價

目的地帳戶也會針對每個要求取消複製作業產生交易成本, (請參閱 中止複製 Blob) 或檢查複製作業的狀態, (請參閱 取得 Blob取得 Blob 屬性) 。

此外,如果來源和目的地帳戶位於不同區域 (,例如美國北部和美國南部) ,則您用來傳輸要求的頻寬會以輸出方式向來源記憶體帳戶收費。 相同地區的帳戶之間其輸出為免費。

當您將來源 Blob 複製到相同帳戶內具有不同名稱的目的地 Blob 時,您會針對新的 Blob 使用其他記憶體資源。 然後,複製作業會針對這些額外資源的記憶體帳戶容量使用量產生費用。 不過,如果來源和目的地 Blob 的名稱在相同的帳戶內相同 (,例如,當您將快照集升級至其基底 Blob) 時,不會產生額外費用,除了儲存在 2012-02-12 版和更新版本中的額外複製元數據之外。

當您將快照集升級以取代其基底 Blob 時,快照集和基底 Blob 會變成完全相同。 這兩者會共用區塊或分頁,因此複製作業不會針對儲存體帳戶的容量使用產生額外的費用。 不過,如果您將快照集複製到具有不同名稱的目的地 Blob,該作業會對產生新 Blob 使用的記憶體資源產生額外費用。 具有不同名稱的兩個 Blob 無法共用區塊或頁面,即使它們相同也一樣。 如需快照集成本案例的詳細資訊,請參閱 瞭解快照集如何累算費用

另請參閱

授權對 Azure 記憶體的要求
狀態和錯誤碼
Blob 記憶體錯誤碼
瞭解快照集如何累算費用
中止複製 Blob