設定 Blob 中繼資料

Set Blob Metadata 作業將指定 Blob 的使用者定義中繼資料設為一個或多個名稱/值組。

要求

Set Blob Metadata 要求的建構如下。 建議您使用 HTTPS。 以您的記憶體帳戶名稱取代 myaccount

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

模擬儲存體服務 URI

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

PUT 方法要求 URI HTTP 版本
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=metadata 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 移除所有中繼資料,請呼叫這項作業並且不使用中繼資料標頭。

注意:自 2009-09-19 版起,元數據名稱必須遵守 C# 識別碼的命名規則。
x-ms-encryption-scope 選擇性。 表示用來加密要求內容的加密範圍。 2019-02-02 版或更新版本支援此標頭。
x-ms-lease-id:<ID> 如果 Blob 具有作用中租用,則為必要項目。 若要在具有作用中租用的 Blob 執行這項作業,請指定此標頭的有效租用識別碼。
x-ms-client-request-id 選擇性。 提供客戶端產生的不透明值,其中包含設定記錄時記錄的 1 kibibyte (KiB) 字元限制。 強烈建議您使用此標頭,將用戶端活動與伺服器接收的要求相互關聯。 如需詳細資訊,請參閱監視 Azure Blob 儲存體

唯有在符合指定條件的情況下,此作業也支援使用條件式標頭,以設定 Blob 中繼資料。 如需詳細資訊,請參閱 指定 Blob 記憶體作業的條件式標頭

要求標頭 (客戶提供的加密金鑰)

從 2019-02-02 版開始,可能會針對要求指定下列標頭,以使用客戶提供的密鑰加密 Blob。 使用客戶提供的金鑰進行加密 (,而對應的標頭集) 是選擇性的。 如果 Blob 先前已使用客戶提供的金鑰加密,則必須在要求中包含這些標頭,才能順利完成寫入作業。

要求標頭 描述
x-ms-encryption-key 必要。 Base64 編碼的 AES-256 加密金鑰。
x-ms-encryption-key-sha256 必要。 加密金鑰的Base64編碼SHA256哈希。
x-ms-encryption-algorithm: AES256 必要。 指定要用於加密的演算法。 此標頭的值必須設定為 AES256

要求本文

無。

回應

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

狀態碼

成功的作業會傳回狀態碼 200 (OK)。

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

回應標頭

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

回應標頭 描述
ETag 包含可用來有條件地執行作業的值。 如需詳細資訊 ,請參閱指定 Blob 記憶體作業的條件標頭 。 如果要求版本是 2011-08-18 和更新版本,ETag 值會以引號括住。
Last-Modified 上次修改 Blob 的日期/時間。 日期格式會依照 RFC 1123。 如需詳細資訊,請參閱 在標頭中代表日期/時間值

Blob 上的任何寫入作業 (包括 Blob 的中繼資料或屬性更新) 都會變更 Blob 的上次修改時間。
x-ms-request-id 可唯一識別發出的要求,並可用來對要求進行疑難解答。 如需詳細資訊,請參閱 針對 API 作業進行疑難解答
x-ms-version 指出用來執行要求的 Blob 記憶體版本。 對 2009-09-19 及更新版本提出要求會傳回此標頭。
Date 服務所產生的 UTC 日期/時間值,表示起始響應的時間。
x-ms-request-server-encrypted: true/false 版本 2015-12-11 和更新版本。 如果指定的演算法成功加密要求的內容,此標頭的值會設定為 true 。 否則,會將值設定為 false
x-ms-encryption-key-sha256 版本 2019-02-02 和更新版本。 如果要求使用客戶提供的金鑰進行加密,則傳回 ,如此用戶端就可以使用提供的密鑰,確保要求的內容已成功加密。
x-ms-encryption-scope 版本 2019-02-02 和更新版本。 如果要求使用加密範圍,則傳回 ,讓用戶端能夠使用加密範圍確保已成功加密要求的內容。
x-ms-client-request-id 可用來針對要求和對應的回應進行疑難解答。 如果此標頭存在於要求中,則此標頭的值等於標頭的值 x-ms-client-request-id ,且值不包含超過 1,024 個可見的 ASCII 字元。 x-ms-client-request-id如果要求中沒有標頭,則不會出現在回應中。

回應本文

無。

授權

在 Azure 記憶體中呼叫任何數據存取作業時,需要授權。 您可以授權 Set Blob Metadata 作業,如下所示。

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

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

備註

如果 Blob 具有作用中的租用,客戶端必須在要求上指定有效的租用標識碼,才能將元數據寫入 Blob。 如果用戶端未指定租用標識符,或指定無效的租用標識符,Blob 記憶體會傳回狀態代碼 412 (前置條件失敗) 。 如果用戶端指定租用標識符,但 Blob 沒有作用中的租用,Blob 記憶體也會傳回狀態代碼 412 (前置條件失敗) 。

計費

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

作業 儲存體帳戶類型 計費類別
設定 Blob 中繼資料 進階區塊 Blob
標準一般用途 v2
其他作業
設定 Blob 中繼資料 標準一般用途 v1 寫入作業

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

另請參閱

授權對 Azure 記憶體的要求
狀態和錯誤碼
Blob 記憶體錯誤碼