Criar um contentor de blobs com o .NET
Os blobs no Armazenamento do Azure estão organizados em contentores. Antes de poder carregar um blob, primeiro tem de criar um contentor. Este artigo mostra como criar contentores com a biblioteca de cliente do Armazenamento do Azure para .NET.
Pré-requisitos
- Este artigo pressupõe que já tem um projeto configurado para funcionar com a biblioteca de cliente Armazenamento de Blobs do Azure para .NET. Para saber mais sobre como configurar o projeto, incluindo a instalação de pacotes, a adição
using
de diretivas e a criação de um objeto de cliente autorizado, veja Introdução ao Armazenamento de Blobs do Azure e .NET. - O mecanismo de autorização tem de ter permissões para criar um contentor de blobs. Para saber mais, veja a documentação de orientação de autorização para a seguinte operação da API REST:
Acerca da nomenclatura de contentores
Um nome de contentor tem de ser um nome DNS válido, uma vez que faz parte do URI exclusivo utilizado para abordar o contentor ou os respetivos blobs. Siga estas regras ao atribuir um nome a um contentor:
- Os nomes dos contentores podem ter entre 3 e 63 carateres.
- Os nomes dos contentores têm de começar com uma letra ou número e só podem conter letras minúsculas, números e o caráter de travessão (-).
- Os carateres de travessão consecutivos não são permitidos em nomes de contentor.
O URI de um recurso de contentor é formatado da seguinte forma:
https://my-account-name.blob.core.windows.net/my-container-name
Criar um contentor
Para criar um contentor, chame um dos seguintes métodos da BlobServiceClient
classe :
Também pode criar um contentor com um dos seguintes métodos da BlobContainerClient
classe :
Estes métodos geram uma exceção se já existir um contentor com o mesmo nome.
Os contentores são criados imediatamente abaixo da conta de armazenamento. Não é possível aninhar um contentor abaixo de outro.
O exemplo seguinte utiliza um BlobServiceClient
objeto para criar um contentor 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 contentor de raiz
Um contentor de raiz serve como um contentor predefinido para a sua conta de armazenamento. Cada conta de armazenamento pode ter um contentor de raiz, que tem de ter o nome $root. O contentor de raiz tem de ser explicitamente criado ou eliminado.
Pode referenciar um blob armazenado no contentor de raiz sem incluir o nome do contentor de raiz. O contentor de raiz permite-lhe referenciar um blob no nível superior da hierarquia da conta de armazenamento. Por exemplo, pode referenciar um blob que está no contentor de raiz da seguinte forma:
https://myaccount.blob.core.windows.net/default.html
O exemplo seguinte cria o contentor de 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 contentor com a biblioteca de cliente Armazenamento de Blobs do Azure para .NET, veja os seguintes recursos.
Operações da API REST
O SDK do Azure para .NET contém bibliotecas que se baseiam na API REST do Azure, o que lhe permite interagir com operações da API REST através de paradigmas de .NET familiares. Os métodos da biblioteca de cliente para criar um contentor utilizam a seguinte operação da API REST:
- Criar Contentor (API REST)