Creare un contenitore BLOB con Go

Questo articolo illustra come creare i contenitori con il modulo client di Archiviazione di Azure per Go. I BLOB in Archiviazione di Azure sono organizzati in contenitori. Prima di poter caricare un BLOB, è necessario creare un contenitore.

Prerequisiti

Configurazione dell'ambiente

Se non si ha un progetto esistente, questa sezione illustra come configurare un progetto per l'uso con il modulo client di Archiviazione BLOB di Azure per Go. I passaggi includono l'installazione del modulo, l'aggiunta di percorsi import e la creazione di un oggetto client autorizzato. Per informazioni dettagliate, vedere Introduzione all'archiviazione BLOB di Azure e Go.

Installare i moduli

Installare il modulo azblob usando il comando seguente:

go get github.com/Azure/azure-sdk-for-go/sdk/storage/azblob

Per eseguire l'autenticazione con Microsoft Entra ID (scelta consigliata), installare il modulo azidentity usando il comando seguente:

go get github.com/Azure/azure-sdk-for-go/sdk/azidentity

Aggiungere percorsi di importazione

Nel file di codice aggiungere i percorsi di importazione seguenti:

import (
    "github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob"
)

Questi percorsi di importazione rappresentano il minimo necessario per iniziare. Alcuni esempi di codice in questo articolo potrebbero richiedere percorsi di importazione aggiuntivi. Per informazioni dettagliate specifiche e utilizzo di esempio, vedere Esempi di codice.

Creare un oggetto client

Per connettere un'app all'archiviazione BLOB, creare un oggetto client usando azblob. NewClient. Nell'esempio seguente viene illustrato come creare un oggetto client usando DefaultAzureCredential per l'autorizzazione:

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
}

Autorizzazione

Il meccanismo di autorizzazione deve disporre delle autorizzazioni necessarie per creare un contenitore. Per l'autorizzazione con Microsoft Entra ID (scelta consigliata), è necessario disporre del ruolo predefinito di Controllo degli accessi in base al ruolo di Azure Collaboratore ai dati del BLOB di archiviazione o ruolo superiore. Per altre informazioni, vedere le indicazioni sulle autorizzazioni per Create Container (API REST).

Informazioni sulla denominazione dei contenitori

Un nome contenitore deve essere un nome DNS valido, perché fa parte dell'URI univoco usato per fare riferimento al contenitore o ai relativi BLOB. Seguire queste regole per la denominazione di un contenitore:

  • I nomi dei contenitori devono avere una lunghezza compresa fra 3 e 63 caratteri.
  • I nomi dei contenitori devono iniziare con una lettera o un numero e possono contenere solo lettere, numeri e il carattere del trattino (-).
  • Nei nomi di contenitori non sono consentiti caratteri trattino consecutivi.

Il formato dell'URI per una risorsa contenitore è il seguente:

https://my-account-name.blob.core.windows.net/my-container-name

Creazione di un contenitore

Per creare un contenitore, chiamare il metodo seguente:

I contenitori vengono creati immediatamente sotto l'account di archiviazione. Non è possibile annidare un contenitore in un altro. Se esiste già un contenitore con lo stesso nome viene generata un'eccezione.

L'esempio seguente mostra come creare un contenitore:

func createContainer(client *azblob.Client, containerName string) {
    // Create a container
    _, err := client.CreateContainer(context.TODO(), containerName, nil)
    handleError(err)
}

Creare il contenitore radice

Un contenitore radice funge da contenitore predefinito per l'account di archiviazione. Ogni account di archiviazione può avere un contenitore radice, che deve essere denominato $root. Il contenitore radice deve essere creato o eliminato in modo esplicito.

È possibile fare riferimento a un BLOB archiviato nel contenitore radice senza includere il nome del contenitore radice. Il contenitore radice consente di fare riferimento a un BLOB al primo livello della gerarchia dell'account di archiviazione. Ad esempio, è possibile fare riferimento a un BLOB che si trova nel contenitore radice nel modo seguente:

https://<storage-account-name>.blob.core.windows.net/default.html

L'esempio seguente crea il contenitore se non esiste già nell'account di archiviazione:

func createRootContainer(client *azblob.Client) {
    // Create root container
    _, err := client.CreateContainer(context.TODO(), "$root", nil)
    handleError(err)
}

Nota

Gli esempi di codice in questa guida sono utili per iniziare a usare Archiviazione BLOB di Azure e Go. È consigliabile modificare la gestione degli errori e i valori Context per soddisfare le esigenze dell'applicazione.

Risorse

Per altre informazioni sulla creazione di un contenitore tramite il modulo client di Archiviazione BLOB di Azure per Go, vedere le risorse seguenti.

Esempi di codice

Operazioni dell'API REST

Azure SDK per Go contiene librerie basate sull'API REST di Azure che consentono di interagire con le operazioni dell'API REST tramite paradigmi Go noti. I metodi della libreria client per la creazione di un contenitore usano l'operazione API REST seguente:

Risorse del modulo client

  • Questo articolo fa parte della Guida per sviluppatori di Archiviazione BLOB per Go. Per altre informazioni, vedere l’elenco completo degli articoli della Guida per sviluppatori inCreare la propria app Go.