使用 .NET 建立 Blob 容器
Azure 儲存體中的 Blob 會組織成容器。 在您可以上傳 Blob 之前,您必須先建立一個容器。 本文說明如何使用適用於 .NET 的 Azure 儲存體用戶端程式庫來建立容器。
必要條件
設定您的環境
如果您沒有現有的專案,本節說明如何設定專案以使用適用於 .NET 的 Azure Blob 儲存體 客戶端連結庫。 這些步驟包括套件安裝、新增 using
指示詞,以及建立授權的客戶端物件。 如需詳細資訊,請參閱開始使用 Azure Blob 儲存體 和 .NET。
安裝套件
從您的專案目錄中,使用 dotnet add package
命令安裝 Azure Blob 儲存體和 Azure 身分識別客戶端程式庫的套件。 需要 Azure.Identity 套件才能對 Azure 服務進行無密碼連線。
dotnet add package Azure.Storage.Blobs
dotnet add package Azure.Identity
新增 using
指示詞
using
將這些指示字新增至程式碼檔案頂端:
using Azure.Identity;
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using Azure.Storage.Blobs.Specialized;
本文中的某些程式代碼範例可能需要其他 using
指示詞。
建立用戶端物件
若要將應用程式連線到 Blob 記憶體,請建立 BlobServiceClient 的實例。 下列範例示範如何使用 來建立客戶端物件 DefaultAzureCredential
以進行授權:
public BlobServiceClient GetBlobServiceClient(string accountName)
{
BlobServiceClient client = new(
new Uri($"https://{accountName}.blob.core.windows.net"),
new DefaultAzureCredential());
return client;
}
您也可以在 .NET 應用程式中註冊服務用戶端以進行 相依性插入 。 若要深入了解如何建立及管理用戶端物件,請參閱建立和管理與資料資源互動的用戶端端物件 (部分機器翻譯)。
授權
授權機制必須具有建立容器的必要許可權。 如需具有 Microsoft Entra ID 的授權(建議),您需要 Azure RBAC 內建角色 記憶體 Blob 數據參與者 或更高版本。 若要深入瞭解,請參閱建立容器 (REST API) 的授權指引。
關於容器命名
容器名稱必須是有效的 DNS 名稱,因為它會形成用來定址容器或其 blob 的唯一 URI 的一部分。 命名容器時,請遵循下列規則:
- 容器名稱長度可介於 3 到 63 個字元之間。
- 容器名稱必須以字母或數字開頭,而且只能包含小寫字母、數字和虛線 (-) 字元。
- 容器名稱中不允許連續的虛線字元。
容器資源的 URI 格式如下:
https://my-account-name.blob.core.windows.net/my-container-name
建立容器
若要建立容器,請從 BlobServiceClient
類別呼叫下列其中一種方法:
您也可以使用下列其中一種方法,從 BlobContainerClient
類別建立容器:
如果已經有相同名稱的容器存在,這些方法會擲回例外狀況。
容器會在儲存體帳戶下方直接建立。 您無法將某個容器巢於另一個容器下方。
下列範例會使用 BlobServiceClient
物件建立非同步的容器:
//-------------------------------------------------
// Create a container
//-------------------------------------------------
private static async Task<BlobContainerClient> CreateSampleContainerAsync(BlobServiceClient blobServiceClient)
{
// Name the sample container based on new GUID to ensure uniqueness.
// The container name must be lowercase.
string containerName = "container-" + Guid.NewGuid();
try
{
// Create the container
BlobContainerClient container = await blobServiceClient.CreateBlobContainerAsync(containerName);
if (await container.ExistsAsync())
{
Console.WriteLine("Created container {0}", container.Name);
return container;
}
}
catch (RequestFailedException e)
{
Console.WriteLine("HTTP error code {0}: {1}",
e.Status, e.ErrorCode);
Console.WriteLine(e.Message);
}
return null;
}
建立根容器
根容器會做為儲存體帳戶的預設容器。 每個儲存體帳戶可能會有一個根容器,必須命名為 $root。 根容器必須明確建立或刪除。
您可以參考儲存在根容器中的 Blob,而不包含根容器名稱。 根容器可讓您參考儲存體帳戶階層最上層的 blob。 例如,您可以依照下述方式參考位於根容器中的 Blob:
https://myaccount.blob.core.windows.net/default.html
下列範例會以同步方式建立根容器:
//-------------------------------------------------
// Create root container
//-------------------------------------------------
private static void CreateRootContainer(BlobServiceClient blobServiceClient)
{
try
{
// Create the root container or handle the exception if it already exists
BlobContainerClient container = blobServiceClient.CreateBlobContainer("$root");
if (container.Exists())
{
Console.WriteLine("Created root container.");
}
}
catch (RequestFailedException e)
{
Console.WriteLine("HTTP error code {0}: {1}",
e.Status, e.ErrorCode);
Console.WriteLine(e.Message);
}
}
資源
若要深入了解如何使用適用於 .NET 的 Azure Blob 儲存體用戶端程式庫建立容器,請參閱下列資源。
REST API 操作
適用於 .NET 的 Azure SDK 包含建置在 Azure REST API 之上的程式庫,可讓您透過熟悉的 .NET 範例與 REST API 作業進行互動。 用來建立容器的用戶端程式庫方法會使用下列 REST API 作業:
- 建立容器 (REST API)