銷售: 1-800-867-1380

放置 Blob

更新日期: 2014年1月

Put Blob 作業可建立新的區塊 Blob 或分頁 Blob,或更新現有區塊 Blob 的內容。

更新現有的區塊 Blob 會覆寫 Blob 中所有的現有中繼資料。Put Blob 不支援部分更新,新的 Blob 內容會覆寫現有的 Blob 內容。若要執行區塊 Blob 內容的部分更新,請使用 放置區塊清單 作業。

請注意,呼叫 Put Blob 以建立分頁 Blob 只會初始化 Blob。若要將內容加入分頁 Blob,請呼叫 放置分頁 作業。

Put Blob 要求的建構如下。建議使用 HTTPS。請以您的儲存體帳戶名稱取代 myaccount

 

  PUT 方法要求 URI HTTP 版本

https://myaccount.blob.core.windows.net/mycontainer/myblob

HTTP/1.1

對模擬儲存體服務提出要求時,請將模擬器主機名稱和 Blob 服務通訊埠指定為 127.0.0.1:10000,後面接著模擬儲存體帳戶名稱:

 

  PUT 方法要求 URI HTTP 版本

http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob

HTTP/1.1

請注意,儲存體模擬器最多只支援 2 GB 的 Blob 大小。

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

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

 

參數 描述

timeout

選擇性。timeout 參數以秒為單位。如需詳細資訊,請參閱設定 Blob 服務作業的逾時值

下表描述在區塊 Blob 和分頁 Blob 上執行作業的必要和選擇性要求標頭。

 

要求標頭 描述

Authorization

必要項。指定驗證配置、帳戶名稱及簽章。如需詳細資訊,請參閱Azure 儲存體服務的驗證

Datex-ms-date

必要項。指定要求的國際標準時間 (UTC)。如需詳細資訊,請參閱Azure 儲存體服務的驗證

x-ms-version

所有已驗證要求的必要項。指定用於這個要求的作業版本。如需詳細資訊,請參閱Azure 儲存體服務的版本設定

Content-Length

必要項。要求的長度。

若為分頁 Blob,此標頭的值必須設為零,因為 放置 Blob 只會用來初始化分頁 Blob。分頁 Blob 的大小會在 x-ms-blob-content-length 標頭中指定。您必須呼叫 放置分頁 將所有內容寫入分頁 Blob。

Content-Type

選擇性。Blob 的 MIME 內容類型。預設類型為 application/octet-stream

Content-Encoding

選擇性。指定已套用至 Blob 的內容編碼。對 Blob 資源執行 取得 Blob 作業時,會將此值傳回用戶端。用戶端可以使用此傳回的值解碼 Blob 內容。

Content-Language

選擇性。指定此資源所使用的自然語言。

Content-MD5

選擇性。Blob 內容的 MD5 雜湊。在傳輸期間,此雜湊可用來驗證 Blob 的完整性。指定此標頭時,儲存體服務會根據傳送的雜湊檢查到達時的雜湊。如果這兩個雜湊不相符,作業會失敗,並顯示錯誤碼 400 (不正確的要求)。

如果在 2012-02-12 版及更新版本中省略,Blob 服務會產生 MD5 雜湊。

取得 Blob取得 Blob 屬性列出 Blob 的結果會包含 MD5 雜湊。

Cache-Control

選擇性。Blob 服務儲存此值,但未使用或修改此值。

x-ms-blob-content-type

選擇性。設定 Blob 的內容類型。

x-ms-blob-content-encoding

選擇性。設定 Blob 的內容編碼。

x-ms-blob-content-language

選擇性。設定 Blob 的內容語言。

x-ms-blob-content-md5

選擇性。設定 Blob 的 MD5 雜湊。

x-ms-blob-cache-control

選擇性。設定 Blob 的快取控制。

x-ms-blob-type:<BlockBlob | PageBlob>

必要項。指定要建立的 Blob 類型:區塊 Blob 或分頁 Blob。

x-ms-meta-name:value

選擇性。與 Blob 相關聯的名稱/值組,可做為中繼資料。

請注意,從 2009-09-19 版開始,中繼資料名稱必須遵守 C# 識別碼的命名規則。

x-ms-lease-id:<ID>

如果 Blob 具有作用中租用,則為必要項目。若要在具有作用中租用的 Blob 執行這項作業,請指定此標頭的有效租用識別碼。

x-ms-blob-content-disposition

選擇性。設定 Blob 的 Content-Disposition 標頭。適用於 2013-08-15 和更新版本。

Content-Disposition 回應標頭欄位會傳遞如何處理回應裝載的其他資訊,也可用來附加其他中繼資料。例如,如果設為 attachment,它會指出使用者代理程式不該顯示回應,而要顯示具有檔案名稱而不是指定之 Blob 名稱的 [另存新檔] 對話方塊。

取得 Blob取得 Blob 屬性 作業的回應包括 content-disposition 標頭。

Origin

選擇性。指定發出要求的來源。此標頭的顯示會導致在回應上跨原始資源共用標頭。如需詳細資訊,請參閱 跨原始資源共用 (CORS) 支援 Azure 儲存體服務

x-ms-client-request-id

選擇性。提供由用戶端產生的不透明值 (具有 1 KB 的字元限制),當儲存體分析記錄為啟用狀態時,此值會記錄在分析記錄檔中。如果是和伺服器所接收的要求相關的用戶端活動,則強烈建議您使用此標頭。如需詳細資訊,請參閱關於儲存體分析記錄Windows Azure 記錄:使用記錄檔追蹤儲存體需求

唯有在符合指定條件的情況下,此作業也可支援使用條件式標頭以寫入 Blob。如需詳細資訊,請參閱指定 Blob 服務作業的條件式標頭

下表描述的要求標頭只適用於分頁 Blob 上的作業。

 

要求標頭 描述

x-ms-blob-content-length: bytes

分頁 Blob 需要此項。此標頭可指定分頁 Blob 的大小上限 (最大為 1 TB)。分頁 Blob 大小必須符合 512 個位元組的界限。

如果針對區塊 Blob 指定此標頭,Blob 服務會傳回狀態碼 400 (不正確的要求)。

x-ms-blob-sequence-number: <num>

選擇性。只能針對分頁 Blob 設定。序號是使用者控制的值,可用來追蹤要求。序號的值必須介於 0 到 2^63 - 1 之間。預設值為 0。

若為區塊 Blob,要求主體包含 Blob 的內容。

若為分頁 Blob,要求主體為空白。

下列範例顯示建立區塊 Blob 的要求:

Request Syntax:
PUT https://myaccount.blob.core.windows.net/mycontainer/myblockblob HTTP/1.1
Request Headers:
x-ms-version: 2013-08-15
x-ms-date: Wed, 23 Oct 2013 22:33:355 GMT
Content-Type: text/plain; charset=UTF-8
x-ms-blob-content-disposition: attachment; filename="fname.ext"
x-ms-blob-type: BlockBlob
x-ms-meta-m1: v1
x-ms-meta-m2: v2
Authorization: SharedKey myaccount:YhuFJjN4fAR8/AmBrqBz7MG2uFinQ4rkh4dscbj598g=
Content-Length: 11
Request Body:
hello world

此範例要求建立分頁 Blob,並將其大小上限指定為 1024 位元組。請注意,您必須呼叫 放置分頁,才能將內容加入分頁 Blob:

Request Syntax:
PUT https://myaccount.blob.core.windows.net/mycontainer/mypageblob HTTP/1.1
Request Headers:
x-ms-version: 2013-08-15
x-ms-date: Wed, 23 Oct 2013 22:41:55 GMT
Content-Type: text/plain; charset=UTF-8
x-ms-blob-type: PageBlob
x-ms-blob-content-length: 1024
x-ms-blob-sequence-number: 0
Authorization: SharedKey 
Origin: http://contoso.com
Vary: Origin
myaccount:YhuFJjN4fAR8/AmBrqBz7MG2uFinQ4rkh4dscbj598g=
Content-Length: 0

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

成功的作業會傳回狀態碼「201 (已建立)」。

如需狀態碼的資訊,請參閱狀態和錯誤碼

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

 

回應標頭 描述

ETag

ETag 包含用戶端使用 PUT 要求標頭執行條件式 If-Match 作業所使用的值。如果要求版本為 2011-08-18 或更新版本,ETag 值會加上引號。

Last-Modified

上次修改 Blob 的日期/時間。日期格式會依照 RFC 1123。如需詳細資訊,請參閱標頭中的日期/時間值表示方式

Blob 上的任何寫入作業 (包括 Blob 的中繼資料或屬性更新) 都會變更 Blob 的上次修改時間。

Content-MD5

區塊 Blob 會傳回此標頭,以供用戶端檢查訊息內容的完整性。傳回的 Content-MD5 值會由 Blob 服務進行計算。在 2012-02-12 版及更新版本中,即使要求未包含 Content-MD5x-ms-blob-content-md5 標頭,也會傳回此標頭。

x-ms-request-id

此標頭可唯一識別提出的要求,而且可用來進行要求的疑難排解。如需詳細資訊,請參閱對應用程式開發介面作業進行疑難排解

x-ms-version

指出用於執行要求的 Blob 服務版本。對 2009-09-19 及更新版本提出要求會傳回此標頭。

Date

服務產生的 UTC 日期/時間值,可指出啟動回應的時間。

Access-Control-Allow-Origin

如果要求包含 Origin 標頭,並啟用 CORS 及比對規則,則傳回此標頭。此標頭會在相符時傳回原始要求標頭的值。

Access-Control-Expose-Headers

如果要求包含 Origin 標頭,並啟用 CORS 及比對規則,則傳回此標頭。傳回向要求的用戶端或簽發者公開的回應標頭清單。

Access-Control-Allow-Credentials

如果要求包含 Origin 標頭,並啟用 CORS 及不允許所有來源的比對規則,則傳回此標頭。這個標頭會設定為 true。

無。

Response Status:
HTTP/1.1 201 Created
Response Headers:
Transfer-Encoding: chunked
Content-MD5: sQqNsWTgdUEFt6mb5y4/5Q==
Date: Wed, 23 Oct 2013 22:33:35 GMT
ETag: "0x8CB171BA9E94B0B"
Last-Modified: Wed, 23 Oct 2013 22:30:15 GMT
Access-Control-Allow-Origin: http://contoso.com
Access-Control-Expose-Headers: Content-MD5
Access-Control-Allow-Credentials: True
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0

帳戶擁有者以及擁有共用存取簽章的任何用戶端才能呼叫此作業,且簽章需有此 Blob 或其容器的寫入權限。

當您建立 Blob 時,您必須指定其為區塊 Blob 或分頁 Blob。一旦建立 Blob,便無法變更 Blob 的類型,如需變更,您必須刪除並重新建立 Blob。

若要建立新的分頁 Blob,請先初始化 Blob,方法是呼叫 Put Blob 並指定其大小上限 (最大為 1 TB)。建立分頁 Blob 時,請勿在要求主體中包含內容。建立 Blob 之後,再呼叫 放置分頁 將內容加入 Blob 或修改 Blob。

區塊 Blob 最大的上傳大小為 64 MB。如果您的 Blob 大於 64 MB,則必須以一組區塊進行上傳。如需詳細資訊,請參閱 放置區塊放置區塊清單 作業。如果以一組區塊上傳 Blob,則不需要呼叫 Put Blob

如果您嘗試上傳大於 64 MB 的區塊 Blob,或大於 1 TB 的分頁 Blob,服務會傳回狀態碼 413 (要求的實體太大)。Blob 服務也會在回應中傳回錯誤的相關資訊,包括 Blob 允許的位元組大小上限。

如果呼叫 Put Blob 覆寫相同名稱的現有 Blob,則會保留與原始 Blob 相關聯的所有快照集。若要移除相關聯的快照集,請先呼叫 刪除 Blob,再呼叫 Put Blob,以重新建立 Blob。

Blob 具有透過標頭設定的自訂屬性,可用來儲存與標準 HTTP 標頭相關聯的值。接著,您可以呼叫 取得 Blob 屬性 讀取這些值,或呼叫 設定 Blob 屬性 修改這些值。下表列出自訂屬性標頭及對應的標準 HTTP 標頭:

 

HTTP 標頭 自訂 Blob 屬性標頭

Content-Type

x-ms-blob-content-type

Content-Encoding

x-ms-blob-content-encoding

Content-Language

x-ms-blob-content-language

Content-MD5

x-ms-blob-content-md5

Cache-Control

x-ms-blob-cache-control

在 Blob 中保存這些屬性值的設定語意如下:

  • 如果用戶端指定自訂屬性標頭 (以 x-ms-blob 前置詞指定),則會在 Blob 中儲存此值。

  • 如果用戶端指定標準 HTTP 標頭,而不是自訂屬性標頭,此值會儲存在與 Blob 相關聯的對應自訂屬性中,並在呼叫 Get Blob Properties 時傳回。例如,如果用戶端在要求中設定 Content-Type 標頭,該值會儲存在 Blob 的 x-ms-blob-content-type 屬性中。

  • 如果用戶端在同一個要求中設定標準 HTTP 標頭及對應的屬性標頭,PUT 要求會使用為標準 HTTP 標頭所提供的值,而為自訂屬性標頭指定的值則會保存在 Blob 中,並由後續 GET 要求傳回。

如果 Blob 有作用中租用,用戶端必須在要求上指定有效的租用識別碼,才能覆寫 Blob。如果用戶端未指定租用識別碼,或是指定無效的租用識別碼,Blob 服務會傳回狀態碼 412 (先決條件失敗)。如果用戶端指定租用識別碼,但是 Blob 沒有作用中租用,Blob 服務也會傳回狀態碼 412 (先決條件失敗)。如果用戶端指定尚不存在的 Blob 租用識別碼,Blob 服務會針對根據 2013-08-15 及更新版本所提出的要求傳回狀態碼 412 (先決條件失敗),並針對舊版傳回狀態碼 201 (已建立)。

如果使用 Put Blob 作業覆寫作用中租用的現有 Blob,更新的 Blob 中會保存此租用,直到過期或釋放為止。

Put Blob 作業每 MB 的允許完成時間為 10 分鐘。如果每 MB 平均超過 10 分鐘,則作業會逾時。

本文對您有任何幫助嗎?
(剩餘 1500 個字元)
感謝您提供意見
顯示:
© 2015 Microsoft