Partilhar via


Criar um contêiner de blob com o .NET

Os blobs no Armazenamento do Azure são organizados em contêineres. Antes de carregar um blob, você deve primeiro criar um contêiner. Este artigo mostra como criar contêineres com a biblioteca de cliente do Armazenamento do 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 pacotes, adicionar using diretivas e criar um objeto de cliente autorizado, consulte Introdução ao Armazenamento de Blobs do Azure e ao .NET.
  • O mecanismo de autorização deve ter permissões para criar um contêiner de blob. Para saber mais, consulte as diretrizes de autorização para a seguinte operação da API REST:

Sobre a nomenclatura de contêineres

Um nome de contêiner deve ser um nome DNS válido, pois faz parte do URI exclusivo usado para endereçar o contêiner ou seus blobs. Siga estas regras ao nomear um contêiner:

  • Os nomes dos contêineres podem ter entre 3 e 63 caracteres.
  • 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 contentor

Para criar um contêiner, chame um dos seguintes métodos da BlobServiceClient classe:

Você também pode criar um contêiner usando um dos seguintes métodos da BlobContainerClient classe:

Esses métodos lançam uma exceção se um contêiner com o mesmo nome já existir.

Os contêineres são criados imediatamente abaixo da conta de armazenamento. Não é possível aninhar um recipiente sob outro.

O exemplo a seguir usa um BlobServiceClient objeto 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 serve 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ê faça referência a um blob no nível superior da hierarquia da conta de armazenamento. Por exemplo, você pode fazer referência a um blob que está 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 cliente do Armazenamento de Blob do Azure para .NET, consulte os recursos a seguir.

Operações da API REST

O SDK do Azure para .NET contém bibliotecas que se baseiam na API REST do Azure, permitindo que você interaja com operações da API REST por meio de paradigmas .NET familiares. Os métodos de biblioteca de cliente para criar um contêiner usam a seguinte operação de API REST:

Recursos da biblioteca do cliente