設定容器中繼資料
Set Container Metadata
作業為指定的容器設定一個或多個使用者定義的名稱/值組。
要求
Set Container Metadata
要求的建構如下。 建議您使用 HTTPS。 以您的記憶體帳戶名稱取代 myaccount :
方法 | 要求 URI | HTTP 版本 |
---|---|---|
PUT |
https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=metadata |
HTTP/1.1 |
模擬記憶體服務要求
當您對模擬記憶體服務提出要求時,請將模擬器主機名和 Blob 服務埠指定為 127.0.0.1:10000
,後面接著仿真的記憶體帳戶名稱:
方法 | 要求 URI | HTTP 版本 |
---|---|---|
PUT |
http://127.0.0.1:10000/devstoreaccount1/mycontainer?restype=container&comp=metadata |
HTTP/1.1 |
如需詳細資訊,請參閱使用 Azure 模擬器進行本機 Azure 儲存體開發。
URI 參數
您可以在要求 URI 中指定下列其他參數:
參數 | 描述 |
---|---|
timeout |
選擇性。
timeout 參數以秒為單位。 如需詳細資訊,請參閱 設定 Blob 服務作業的逾時。 |
要求標頭
下表說明必要的和選擇性要求標頭:
要求標頭 | 描述 |
---|---|
Authorization |
必要。 指定授權配置、帳戶名稱和簽章。 如需詳細資訊,請參閱授權對 Azure 儲存體提出要求。 |
Date 或 x-ms-date |
必要。 指定要求的「國際標準時間」(UTC)。 如需詳細資訊,請參閱授權對 Azure 儲存體提出要求。 |
x-ms-version |
所有已授權要求都需要。 指定用於這個要求的作業版本。 如需詳細資訊,請參閱 Azure 儲存體服務的版本。 |
x-ms-lease-id: <ID> |
選擇性版本 2012-02-12 和更新版本。 如果已指定, Set Container Metadata 只有在容器的租用作用中且符合此標識符時,才會成功。 如果沒有作用中的租用或標識符不相符,則會傳回 412 (前置條件失敗) 。 |
x-ms-meta-name:value |
選擇性。 做為中繼資料並與容器相關聯的名稱/值組。 每次呼叫此作業都會取代附加至容器的所有現有元數據。 若要從容器中移除所有中繼資料,請呼叫這項作業並且不使用中繼資料標頭。 注意:自 2009-09-19 版起,元數據名稱必須遵守 C# 識別碼的命名規則。 |
x-ms-client-request-id |
選擇性。 提供客戶端產生的不透明值,其中包含設定記錄時記錄的 1 kibibyte (KiB) 字元限制。 強烈建議您使用此標頭,將用戶端活動與伺服器接收的要求相互關聯。 如需詳細資訊,請參閱監視 Azure Blob 儲存體。 |
唯有在符合指定條件的情況下,此作業才可支援使用條件式標頭,設定容器中繼資料。 如需詳細資訊,請參閱 指定 Blob 服務作業的條件式標頭。
要求本文
無。
範例要求
Request Syntax:
PUT https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=metadata HTTP/1.1
Request Headers:
x-ms-version: 2011-08-18
x-ms-date: Sun, 25 Sep 2011 22:50:32 GMT
x-ms-meta-Category: Images
Authorization: SharedKey myaccount:Z5043vY9MesKNh0PNtksNc9nbXSSqGHueE00JdjidOQ=
回應
回應包括 HTTP 狀態碼和一組回應標頭。
狀態碼
成功的作業會傳回狀態碼 200 (OK)。
如需狀態代碼的詳細資訊,請參閱 狀態和錯誤碼。
回應標頭
這項作業的回應包括下列標頭。 回應也可能包括其他標準 HTTP 標頭。 所有標準標頭都符合 HTTP/1.1 通訊協議規格。
回應標頭 | 描述 |
---|---|
ETag |
容器的 ETag。 如果要求版本是 2011-08-18 和更新版本,ETag 值會以引號括住。 |
Last-Modified |
傳回上次修改容器的日期和時間。 日期格式會依照 RFC 1123。 如需詳細資訊,請參閱 在標頭中代表日期/時間值。 修改容器或其屬性或中繼資料的任何作業,都會更新上次修改時間,包括設定容器的權限。 Blob 上的作業不會影響容器的上次修改時間。 |
ms-request-id |
可唯一識別發出的要求,並可用來對要求進行疑難解答。 如需詳細資訊,請參閱 針對 API 作業進行疑難解答。 |
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 。 |
x-ms-client-request-id |
此標頭可用來針對要求和對應的回應進行疑難解答。 如果此標頭存在於要求中,且值包含不超過 1,024 個可見的 ASCII 字元,則此標頭的值等於標頭的值 x-ms-client-request-id 。
x-ms-client-request-id 如果要求中沒有標頭,它就不會出現在回應中。 |
回應本文
無。
授權
在 Azure 記憶體中呼叫任何數據存取作業時,需要授權。 您可以授權 Set Container Metadata
作業,如下所述。
重要
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 使用者、群組、受控識別或服務主體呼叫Set Container Metadata
作業所需的 RBAC 動作,以及包含此動作的最低許可權內建 Azure RBAC 角色:
- Azure RBAC 動作:Microsoft.Storage/storageAccounts/blobServices/containers/write
- 最低特殊許可權的內建角色:記憶體 Blob 數據參與者
若要深入瞭解如何使用 Azure RBAC 指派角色,請參閱 指派 Azure 角色以存取 Blob 數據。
備註
Set Container Metadata
呼叫作業會覆寫與容器相關聯的所有現有元數據。 您無法修改個別名稱/值組。
您也可以在建立容器時設定容器的元數據。
呼叫 Set Container Metadata
會更新容器的 ETag 和 Last-Modified-Time
屬性。 如果使用 2011-08-18 版提出要求,更新後的 ETag 會以引號括住。
計費
定價要求可能源自使用 Blob 記憶體 API 的用戶端,無論是直接透過 Blob 記憶體 REST API,還是來自 Azure 記憶體用戶端連結庫。 這些要求會累算每個交易的費用。 交易類型會影響帳戶的收費方式。 例如,讀取交易會累算到與寫入交易不同的計費類別。 下表根據記憶體帳戶類型顯示要求的計費類別 Set Container Metadata
:
作業 | 儲存體帳戶類型 | 計費類別 |
---|---|---|
設定容器中繼資料 | 進階區塊 Blob 標準一般用途 v2 |
其他作業 |
設定容器中繼資料 | 標準一般用途 v1 | 寫入作業 |
若要瞭解指定計費類別的定價,請參閱 Azure Blob 儲存體 定價。