該 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 協定 |
如需詳細資訊,請參閱 使用 Azurite 模擬器進行本機 Azure 記憶體開發。
URI 參數
您可以在要求 URI 上指定下列其他參數:
參數 | 說明 |
---|---|
timeout |
選擇性。
timeout 參數是以秒為單位來表示。 有關詳細資訊,請參閱 為 Blob 儲存作設置超時。 |
請求標頭
下表描述必要和選擇性的要求標頭:
請求標頭 | 說明 |
---|---|
Authorization |
必須的。 指定授權配置、帳戶名稱和簽章。 如需詳細資訊,請參閱 授權對 Azure 記憶體的要求。 |
Date 或 x-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 千位元組 (KiB) 的 URL,用於指定 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 的租用標識碼。 如果請求不包含租約ID或ID無效,則作將失敗,狀態代碼為412(Precondition Failed)。 如果指定了此標頭,並且目標 blob 當前沒有活動租約,則作將失敗,狀態代碼為 412 (Precondition Failed)。 在版本 2012-02-12 及更高版本中,此值必須為租用的 blob 指定活動無限租約。 有限持續時間租約 ID 失敗,狀態代碼為 412 (Precondition Failed)。 |
x-ms-source-lease-id: <ID> |
對於 2012-02-12 之前的版本,此參數為可選(在 2012-02-12 及更高版本中不受支援)。 指定此標頭,以便僅在提供的租約ID與源 blob 的活動租約ID匹配時執行 Copy Blob 作。如果指定了此標頭,並且源 blob 當前沒有活動租約,則作將失敗,狀態代碼為 412 (Precondition Failed)。 |
x-ms-client-request-id |
選擇性。 提供用戶端生成的不透明值,該值具有 1 KiB 字元限制,在配置日誌記錄時,該值將記錄在日誌中。 強烈建議您使用此標頭,將用戶端活動與伺服器接收的要求相互關聯。 |
x-ms-access-tier |
選擇性。 指定要在目標 blob 上設置的層。 此標頭僅適用於版本 2017-04-17 及更高版本的高級帳戶上的頁 blob。 有關受支援層的完整清單,請參閱 VM 的高性能高級存儲和託管磁碟。 塊 blob 版本 2018-11-09 及更高版本支援此標頭。 Blob 儲存或常規用途 v2 帳戶支援塊 blob 分層。 合法值為 Hot 、 Cool 與 Cold Archive 。
注意:2021-12-02 版和更新版本支援Cold 層。 有關塊 blob 分層的詳細資訊,請參閱 熱存儲層、冷存儲層和存檔存儲層。 |
x-ms-rehydrate-priority |
選擇性。 表示要重新凍結封存 Blob 的優先順序。 塊 blob 版本 2019-02-02 及更高版本支援此標頭。 有效值為 High 與 Standard 。 只能在 blob 上設置一次優先順序。 在對同一 blob 的後續請求中,將忽略此標頭。 沒有此標頭的預設優先權為 Standard 。 |
x-ms-seal-blob |
選擇性。 在版本 2019-12-12 或更高版本上受支援。 此標頭僅對追加 blob 有效。 它會在複製作完成後密封目標 blob。 |
x-ms-immutability-policy-until-date |
版本 2020-06-12 及更高版本。 指定要在 blob 上設置的 retention-until 日期。 這是可以保護 blob 免遭修改或刪除的日期。 它遵循RFC1123格式。 |
x-ms-immutability-policy-mode |
版本 2020-06-12 及更高版本。 指定要在 blob 上設置的不可變性策略模式。 有效值為 unlocked 與 locked 。 值 unlocked 表示用戶可以通過增加或減少 retention-until date 來更改策略。 值 locked 表示禁止這些作。 |
x-ms-legal-hold |
版本 2020-06-12 及更高版本。 指定要在 blob 上設置的依法保留。 有效值為 true 與 false 。 |
此作僅支援 x-ms-if-tags
和 x-ms-source-if-tags
conditional 標頭僅在滿足指定條件時成功。 如需詳細資訊,請參閱 指定 Blob 記憶體作業的條件式標頭。
請求主體
沒有。
回應
回應包含 HTTP 狀態代碼和一組響應標頭。
狀態代碼
在版本 2012-02-12 及更高版本中,成功的作將返回狀態代碼 202 (Accepted)。
在 2012-02-12 之前的版本中,成功的作會返回狀態代碼 201 (Created)。
如您需狀態代碼的相關資訊,請參閱 狀態和錯誤碼。
回應標頭
此作業的回應包含下列標頭。 回應也可以包含額外的標準 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 及更高版本。 為此複製作提供字串標識碼。 使用with Get Blob 或 Get Blob Properties 檢查此複製作的狀態,或使用pass to Abort Copy Blob 取消待處理的複製作。 |
x-ms-copy-status: <success ¦ pending> |
版本 2012-02-12 及更高版本。 指示複製作的狀態,具有以下值: - success :作成功完成。- pending :作正在進行中。 |
x-ms-version-id: <DateTime> |
版本 2019-12-12 及更高版本。 按版本唯一標識 blob。 可以在後續請求中使用此不透明值來訪問此版本的 Blob。 |
x-ms-client-request-id |
可用來針對要求和對應的回應進行疑難解答。 如果此標頭存在於要求中,且值最多為1,024個可見ASCII字元,則此標頭的值等於 x-ms-client-request-id 標頭的值。 如果要求中沒有 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 | 是的 | 是的 | 是的 |
同一存儲帳戶中的源 blob | 是的 | 是的 | 是的 |
另一個存儲帳戶中的源 blob | 否 | 是的 | 否 |
如果請求在請求標頭中 x-ms-tags
指定了 tags,則調用方必須滿足 Set Blob Tags 作的授權要求。
您可以授權 Copy Blob
作業,如下所示。 請注意,必須通過具有 讀取 (r) 許可權的 SAS 令牌單獨授權不同儲存帳戶中的源 blob。 有關源 blob 授權的更多資訊,請參閱請求標頭 x-ms-copy-source
的詳細資訊。
這很重要
Microsoft建議搭配受控識別使用 Microsoft Entra ID 來授權對 Azure 記憶體的要求。 相較於共用密鑰授權,Microsoft Entra ID 提供更高的安全性和易於使用性。
Azure 儲存體支援使用 Microsoft Entra ID 來授權對 Blob 資料的要求。 使用 Microsoft Entra 識別符,您可以使用 Azure 角色型存取控制 (Azure RBAC) 將權限授與安全性主體。 安全性主體可能是使用者、群組、應用程式服務主體或 Azure 受控識別。 安全性主體會由 Microsoft Entra ID 驗證,以傳回 OAuth 2.0 令牌。 令牌接著可用來授權對 Blob 服務的要求。
若要深入瞭解使用 Microsoft Entra 識別符進行授權,請參閱 使用 Microsoft Entra ID授權 Blob 存取權。
權限
以下列出Microsoft Entra 使用者、群組、受控識別或服務主體呼叫 Copy Blob
作業所需的 RBAC 動作,以及包含此動作的最低特殊許可權內建 Azure RBAC 角色:
目標 blob
- Azure RBAC作:Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write (用於寫入現有 Blob)或 Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action (用於將新 Blob 写入目標)
- 最低許可權內建角色:記憶體 Blob 數據參與者
同一存儲帳戶中的源 blob
- Azure RBAC作:Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
- 最低特權內置角色:存儲 Blob 數據讀取者
若要深入瞭解如何使用 Azure RBAC 指派角色,請參閱 指派 Azure 角色以存取 blob 資料。
備註
在版本 2012-02-12 及更高版本中, Copy Blob
該作可以異步完成。 此作將返回一個複製 ID,您可以使用該 ID 來檢查或取消複製作。 由於複製作的異步性質,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 複製時,將複製所有已提交的塊及其塊 ID。 未提交的塊不會被複製。 在複製作結束時,目標 blob 的已提交塊計數與源 blob 相同。
從追加 blob 複製時,將複製所有提交的塊。 在複製作結束時,目標 blob 的已提交塊數將少於或等於源 blob 數。
對於所有 blob 類型,都可以調用 Get Blob
目標 blob 上的 或 Get Blob Properties
來檢查複製作的狀態。 複製作完成後,將提交最終 blob。
當複製作的源提供 ETag
值時,在複製作正在進行時對源的任何更改都會導致該作失敗。 在複製過程中嘗試更改目標 blob 將失敗,並顯示狀態代碼 409 (衝突)。 如果目標 blob 具有無限租約,則必須將租約 ID 傳遞給 Copy Blob
。 不允許有限期限的租約。
ETag
塊 blob 的值在作開始時和作結束時會發生變化Copy Blob
。
ETag
頁 blob 的值在作開始時會更改Copy Blob
,並且在複製作期間會繼續頻繁更改。 只有在完整複製作完成後,塊 blob 的內容才能通過 Get
命令可見。
複製 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
刪除任何未提交的塊。 如果在這種情況下指定了metadata,則現有元數據將被新元數據覆蓋。
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
作的調用中指定其租約 ID。 如果您指定的租約是有效的有限持續時間租約,則此調用將失敗,並顯示狀態代碼 412 (Precondition Failed)。 當複製作處於掛起狀態時,目標 blob 上的任何租約作都會失敗,狀態代碼為 409 (衝突)。 在複製作期間,無論是複製到與源名稱不同的目標 blob、複製到與源名稱相同的目標 blob,還是在其基本 blob 上提升快照,目標 blob 上的無限租約都會以這種方式鎖定。
如果用戶端在尚不存在的 blob 上指定租約 ID,則 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
複製 ID 和源 blob 的 URL。 作完成後,Blob 儲存會將時間和結果值(success
、 failed
或 aborted
)寫入目標 blob 的屬性。 如果作有 failed
結果, x-ms-copy-status-description
則標頭包含錯誤詳細資訊字串。
待處理 Copy Blob
作有兩周的超時。 兩周后仍未完成的複製嘗試將超時,並留下一個空 blob,其 x-ms-copy-status
欄位設置為 failed
500 ( x-ms-copy-status-description
OperationCancelled)。 複製作期間可能發生的間歇性非致命錯誤可能會阻礙作的進度,但不會導致作失敗。 在這些情況下, x-ms-copy-status-description
描述間歇性錯誤。
在複製作期間修改目標 blob 或創建目標 blob 快照的任何嘗試都將失敗,並顯示狀態代碼 409(衝突)、“複製 blob 正在進行”。
如果調用該 Abort Copy Blob
作,您將看到一個 x-ms-copy-status:aborted
標頭。 目標 blob 將具有完整的元數據和 blob 長度為 0 位元組。 您可以重複原始調用 to Copy Blob
以再次嘗試複製作。
Copy Blob
如果作同步完成,請使用下表確定複製作的狀態:
狀態代碼 | 意義 |
---|---|
202 (已接受) ,x-ms-copy-status:成功 | 複製作已成功完成。 |
4xx、500 或 503 | 複製作失敗。 |
高級存儲層繼承了該層。 對於塊 blob,如果未提供,則覆蓋目標 blob 將從目標 x-ms-access-tier
繼承熱層或冷層。 覆蓋存檔的 blob 將失敗。 有關在塊 blob 級別分層的詳細資訊,請參閱 熱存儲層、冷存儲層和存檔存儲層。
帳單管理
定價要求可能來自使用 Blob 記憶體 API 的用戶端,無論是直接透過 Blob 記憶體 REST API,還是來自 Azure 記憶體用戶端連結庫。 這些要求會依交易產生費用。 交易類型會影響帳戶的收費方式。 例如,讀取交易累算到與寫入交易不同的計費類別。 下表根據記憶體帳戶類型顯示 Copy Blob
要求的計費類別:
行動 | 記憶體帳戶類型 | 計費類別 |
---|---|---|
複製 Blob(目標帳戶1) | 進階區塊 Blob 標準一般用途 v2 標準一般用途 v1 |
寫入作業 |
複製 Blob(源帳戶2) | 進階區塊 Blob 標準一般用途 v2 標準一般用途 v1 |
讀取作業 |
1目的地帳戶會收取一筆交易來起始寫入的費用。
阿拉伯數位當源對象位於不同的帳戶中時,源帳戶對源物件的每個讀取請求都會產生一個事務。
若要瞭解指定計費類別的定價,請參閱 Azure Blob 記憶體定價。
目標帳戶還會為取消複製作(請參閱 中止複製 Blob)或檢查複製作的狀態(請參閱 獲取 Blob 或 獲取 Blob 屬性)的每個請求產生事務成本。
此外,如果源帳戶和目標帳戶位於不同的區域(例如,美國北部和美國南部),則用於傳輸請求的頻寬將作為出口向源存儲帳戶收費。 相同區域內帳戶之間的輸出是免費的。
將源 blob 複製到同一帳戶中具有不同名稱的目標 blob 時,會為新 blob 使用額外的存儲資源。 然後,複製作將對存儲帳戶的容量使用量收取這些額外資源的費用。 但是,如果源 blob 和目標 blob 的名稱在同一帳戶中相同(例如,當您將快照提升到其基本 blob 時),則不會產生額外費用,除了存儲在版本 2012-02-12 及更高版本中的額外複製元數據外。
提升快照以替換其基本 blob 時,快照和基本 blob 將變得相同。 它們共享塊或頁面,因此複製作不會對存儲帳戶的容量使用產生額外費用。 但是,如果將快照複製到具有不同名稱的目標 blob,則該作將產生生成的新 blob 使用的存儲資源的額外費用。 具有不同名稱的兩個 blob 不能共享塊或頁面,即使它們相同。 有關快照成本方案的更多資訊,請參閱 瞭解快照如何產生費用。