Criar um contêiner de blob com Go
Este artigo mostra como criar contêineres com o módulo de cliente de Armazenamento do Azure para Go. Os blobs no Armazenamento do Azure são organizados em contêineres. Antes de carregar um blob, você deve primeiro criar um contêiner.
Pré-requisitos
- Subscrição do Azure - crie uma gratuitamente
- Conta de armazenamento do Azure - criar uma conta de armazenamento
- Ir 1.18+
Configurar o ambiente
Se você não tiver um projeto existente, esta seção mostra como configurar um projeto para trabalhar com o módulo de cliente de Armazenamento de Blob do Azure para Go. As etapas incluem a instalação do módulo, a adição de import
caminhos e a criação de um objeto de cliente autorizado. Para obter detalhes, consulte Introdução ao Armazenamento de Blobs do Azure e Go.
Instalar módulos
Instale o módulo azblob usando o seguinte comando:
go get github.com/Azure/azure-sdk-for-go/sdk/storage/azblob
Para autenticar com o Microsoft Entra ID (recomendado), instale o azidentity
módulo usando o seguinte comando:
go get github.com/Azure/azure-sdk-for-go/sdk/azidentity
Adicionar caminhos de importação
No arquivo de código, adicione os seguintes caminhos de importação:
import (
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob"
)
Esses caminhos de importação representam o mínimo necessário para começar. Alguns exemplos de código neste artigo podem exigir caminhos de importação adicionais. Para obter detalhes específicos e exemplos de uso, consulte Exemplos de código.
Criar um objeto cliente
Para conectar um aplicativo ao Armazenamento de Blob, crie um objeto cliente usando azblob. NewClient. O exemplo a seguir mostra como criar um objeto cliente usando DefaultAzureCredential
para autorização:
func getServiceClientTokenCredential(accountURL string) *azblob.Client {
// Create a new service client with token credential
credential, err := azidentity.NewDefaultAzureCredential(nil)
handleError(err)
client, err := azblob.NewClient(accountURL, credential, nil)
handleError(err)
return client
}
Autorização
O mecanismo de autorização deve ter as permissões necessárias para criar um contêiner. Para autorização com o Microsoft Entra ID (recomendado), você precisa da função interna do RBAC do Azure RBAC Storage Blob Data Contributor ou superior. Para saber mais, consulte as diretrizes de autorização para Criar contêiner (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 o seguinte método:
Os contêineres são criados imediatamente abaixo da conta de armazenamento. Não é possível aninhar um recipiente sob outro. Uma exceção é lançada se já existir um contêiner com o mesmo nome.
O exemplo a seguir mostra como criar um contêiner:
func createContainer(client *azblob.Client, containerName string) {
// Create a container
_, err := client.CreateContainer(context.TODO(), containerName, nil)
handleError(err)
}
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 no contêiner raiz da seguinte maneira:
https://<storage-account-name>.blob.core.windows.net/default.html
O exemplo a seguir cria o contêiner se ele ainda não existir na conta de armazenamento:
func createRootContainer(client *azblob.Client) {
// Create root container
_, err := client.CreateContainer(context.TODO(), "$root", nil)
handleError(err)
}
Nota
Os exemplos de código neste guia destinam-se a ajudá-lo a começar a usar o Azure Blob Storage and Go. Você deve modificar o tratamento de erros e Context
os valores para atender às necessidades do seu aplicativo.
Recursos
Para saber mais sobre como criar um contêiner usando o módulo de cliente de Armazenamento de Blob do Azure para Go, consulte os recursos a seguir.
Amostras de código
- Exibir exemplos de código deste artigo (GitHub)
Operações da API REST
O SDK do Azure para Go 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 Go familiares. Os métodos de biblioteca de cliente para criar um contêiner usam a seguinte operação de API REST:
- Criar contêiner (API REST)
Recursos do módulo cliente
Conteúdos relacionados
- Este artigo faz parte do guia do desenvolvedor do Blob Storage para Go. Para saber mais, consulte a lista completa de artigos do guia do desenvolvedor em Crie seu aplicativo Go.