當您建置應用程式以在 Azure Blob 記憶體中使用資料資源時,您的程式代碼主要會與三種資源類型互動:記憶體帳戶、容器和 Blob。 本文說明這些資源類型,並說明它們彼此之間的關係。 它也會示範應用程式程式代碼如何使用 Azure Blob 記憶體用戶端連結庫來與這些各種資源互動。
Blob 記憶體資源類型
Azure Blob 儲存體用戶端程式庫可讓您與儲存體服務中的三種資源類型互動:
下圖顯示這些資源之間的關係:
儲存體帳戶
儲存體帳戶會在 Azure 中為您的資料提供唯一命名空間。 您在 Azure 記憶體中儲存的每個物件都有包含您唯一帳戶名稱的位址。 帳戶名稱和 Blob 記憶體端點的組合會形成記憶體帳戶中物件的基位址。
例如,如果您的記憶體帳戶名為 sampleaccount,則 Blob 記憶體的預設端點為:
https://sampleaccount.blob.core.windows.net
若要深入瞭解記憶體帳戶的類型,請參閱 Azure 記憶體帳戶概觀。
容器
容器會組織一組 Blob,類似於檔案系統中的目錄。 儲存體帳戶可以包括無限數量的容器,而一個容器則可儲存無限數量的 Blob。
容器的 URI 類似於:
https://sampleaccount.blob.core.windows.net/sample-container
如需命名容器的詳細資訊,請參閱 命名和參考容器、Blob 和元數據。
塊狀物
Azure 記憶體支援三種類型的 Blob:
- 區塊 Blob 會儲存文字和二進位資料。 區塊 Blob 是由可以個別管理的數據區塊所組成。 區塊 Blob 最多可儲存大約 190.7 TiB 的資料。
- 附加 Blob 和區塊 Blob 相似,由區塊所組成,但已針對附加作業最佳化。 附加 Blob 很適合某些案例,例如記錄虛擬機器中的資料。
- Page Blob 儲存容量上限為 8 TiB 的隨機存取檔案。 如需分頁 Blob 的詳細資訊,請參閱 Azure 分頁 Blob 概觀
如需不同 Blob 類型的相關詳細資訊,請參閱了解區塊 Blob、附加 Blob 和分頁 Blob (部分內容可能是機器或 AI 翻譯)。
Blob 的 URI 類似於:
https://sampleaccount.blob.core.windows.net/sample-container/sample-blob
如需命名 Blob 的詳細資訊,請參閱 命名和參考容器、Blob 和元數據。
使用 Azure SDK 處理數據資源
Azure SDK 包含以 Azure REST API 為基礎的連結庫,可讓您透過熟悉的程式設計語言範例與 REST API 作業互動。 SDK 的設計目的是要簡化您的應用程式與 Azure 資源之間的互動。
在少見的情況下,升級到最新 beta 版或正式版 SDK 的應用程式可能會收到 InvalidHeaderValue
錯誤訊息。 使用任何儲存體程式庫時,可能會發生此問題。 錯誤訊息看起來類似以下範例:
HTTP/1.1 400 The value for one of the HTTP headers is not in the correct format.
Content-Length: 328
Content-Type: application/xml
Server: Microsoft-HTTPAPI/2.0
x-ms-request-id: <REMOVED>
Date: Fri, 19 May 2023 17:10:33 GMT
<?xml version="1.0" encoding="utf-8"?>
<Error>
<Code>InvalidHeaderValue</Code>
<Message>
The value for one of the HTTP headers is not in the correct format.
RequestId:<REMOVED>
Time:2023-05-19T17:10:34.2972651Z
</Message>
<HeaderName>x-ms-version</HeaderName><HeaderValue>yyyy-mm-dd</HeaderValue>
</Error>
如果您已經升級到最新的 beta 或一般可用版本的 SDK,並遇到此錯誤,建議降級到之前一般可用版本的 SDK,以查看問題是否得到解決。
您可以在下列位置檢視 SDK 特定詳細資料:
如果問題仍然存在,或者建議不可行,請開啟支援請求以探索更多選項。
在 Azure Blob 記憶體用戶端連結庫中,每個資源類型都會以一或多個相關聯的類別表示。 這些類別提供使用 Azure 記憶體資源的作業。
下表列出基本類別,以及簡短描述:
班級 | 說明 |
---|---|
BlobServiceClient | 表示儲存體帳戶,並提供作業來擷取和設定帳戶屬性,以及使用儲存體帳戶中的 Blob 容器。 |
BlobContainerClient | 代表一個特定的 Blob 容器,並提供方法來操作此容器及其中的 Blob。 |
BlobClient | 表示特定 Blob,並提供一般作業來處理 Blob,包括上傳、下載、刪除和建立快照集的作業。 |
AppendBlobClient | 表示附加 Blob,並提供附加 Blob 的特定作業,例如附加記錄資料。 |
BlockBlobClient | 表示區塊 Blob,並提供區塊 Blob 的特定作業,例如暫存再認可資料區塊。 |
下列套件包含用來處理 Blob 儲存體資料資源的類別:
- Azure.Storage.Blobs:包含可用來操作服務、容器和 Blob 的主要類別 (「用戶端物件」)。
- Azure.Storage.Blobs.Specialized (英文):包含可用來執行特定於某個 Blob 類型 (例如區塊 Blob) 之作業的類別。
- Azure.Storage.Blobs.Models:所有其他公用程式類別、結構和列舉類型。
後續步驟
利用 SDK 來使用 Azure 資源要從建立用戶端執行個體開始。 若要深入瞭解客戶端物件建立和管理,請參閱 建立和管理與數據資源互動的客戶端物件。