Share via


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:

Recursos da biblioteca de clientes