Criar um contêiner de blob com .NET
Os blobs no Armazenamento do Azure são organizados em contêineres. Antes de carregar um blob, é necessário primeiro criar um contêiner. Este artigo mostra como criar contêineres com a biblioteca de cliente do Armazenamento do Microsoft Azure para .NET.
Pré-requisitos
- Este artigo pressupõe que você já tenha um projeto configurado para trabalhar com a biblioteca de cliente do Armazenamento de Blobs do Azure para .NET. Para saber mais sobre como configurar seu projeto, incluindo a instalação de pacote, a adição de diretivas
using
e a criação de um objeto do cliente autorizado, consulte Introdução ao Armazenamento de Blobs do Azure e .NET. - O mecanismo de autorização deve ter permissões para criar um contêiner de blob. Para saber mais, confira as diretrizes de autorização para as seguintes operações de API REST:
Sobre a nomenclatura de contêiner
Um nome de contêiner deve ser um nome DNS válido, pois ele faz parte do URI exclusivo usado para endereçar o contêiner ou seus blobs. Siga estas regras ao nomear um contêiner:
- O comprimento dos nomes do contêiner pode ser entre 3 e 63 aracteres.
- Os nomes de contêiner devem começar com uma letra ou número e podem conter apenas letras minúsculas, números e o caractere traço (-).
- Caracteres de traço consecutivos não são permitidos em nomes de contêineres.
O URI de um recurso de contêiner é formatado da seguinte maneira:
https://my-account-name.blob.core.windows.net/my-container-name
Criar um contêiner
Para criar um contêiner, chame um dos seguintes métodos da classe BlobServiceClient
:
Você também pode criar um contêiner usando um dos seguintes métodos da classe BlobContainerClient
:
Esses métodos geram uma exceção se já existir um contêiner com o mesmo nome.
Os contêineres são criados imediatamente sob a conta de armazenamento. Não é possível aninhar um contêiner sob outro.
O exemplo a seguir usa um objeto BlobServiceClient
para criar um contêiner de forma assíncrona:
//-------------------------------------------------
// 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;
}
Criar o contêiner raiz
Um contêiner raiz funciona como um contêiner padrão para sua conta de armazenamento. Cada conta de armazenamento pode ter um contêiner raiz, que deve ser nomeado $root. O contêiner raiz deve ser explicitamente criado ou excluído.
Você pode fazer referência a um blob armazenado no contêiner raiz sem incluir o nome do contêiner raiz. O contêiner raiz permite que você consulte um blob no nível superior da hierarquia da conta de armazenamento. Por exemplo, faça referência a um blob que resida no contêiner raiz da seguinte maneira:
https://myaccount.blob.core.windows.net/default.html
O exemplo a seguir cria o contêiner raiz de forma síncrona:
//-------------------------------------------------
// 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);
}
}
Recursos
Para saber mais sobre como criar um contêiner usando a biblioteca de clientes do Armazenamento de Blobs do Azure para o .NET, consulte os recursos a seguir.
Operações da API REST
O SDK do Azure para .NET contém bibliotecas que criam sobre a API REST do Azure, permitindo a interação com as operações de API REST por meio de paradigmas conhecidos do .NET. Os métodos da biblioteca de clientes para criar um contêiner usam a seguinte operação de API REST:
- Criar contêiner (API REST)