Creare un contenitore BLOB con Go
Questo articolo illustra come creare contenitori con il modulo client 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
- Sottoscrizione di Azure: creare un account gratuito
- Account di archiviazione di Azure: creare un account di archiviazione
- Vai 1.18+
Configurazione dell'ambiente
Se non si dispone di un progetto esistente, questa sezione illustra come configurare un progetto per l'uso con il modulo client Archiviazione BLOB di Azure per Go. I passaggi includono l'installazione del modulo, l'aggiunta import
di percorsi e la creazione di un oggetto client autorizzato. Per informazioni dettagliate, vedere Introduzione a 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 azidentity
modulo 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"
)
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 il ruolo predefinito Controllo degli accessi in base al ruolo di Azure Collaboratore ai dati dei BLOB di archiviazione o versione successiva. Per altre informazioni, vedere il materiale sussidiario sull'autorizzazione per Creare un contenitore (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 Context
i valori per soddisfare le esigenze dell'applicazione.
Risorse
Per altre informazioni sulla creazione di un contenitore usando il modulo client Archiviazione BLOB di Azure per Go, vedere le risorse seguenti.
Esempi di codice
- Visualizzare gli esempi di codice di questo articolo (GitHub)
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:
- Create Container (API REST)
Risorse del modulo client
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per