Creare un contenitore BLOB con Java

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

Prerequisiti

Configurazione dell'ambiente

Se non si ha un progetto esistente, questa sezione illustra come configurare un progetto per l’uso con la libreria client di Archiviazione BLOB di Azure per Java. Per altre informazioni, vedere Introduzione all’Archiviazione BLOB di Azure e Java.

Per usare gli esempi di codice in questo articolo, seguire questa procedura per configurare il progetto.

Nota

Questo articolo usa lo strumento di compilazione Maven per compilare ed eseguire il codice di esempio. Anche altri strumenti di compilazione, come Gradle, sono compatibili con Azure SDK per Java.

Installare i pacchetti

Aprire il file pom.xml nell'editor di testo. Installare i pacchetti includendo il file BOM o includendo una dipendenza diretta.

Aggiungere le istruzioni di importazione

Aggiungere le istruzioni import seguenti:

import com.azure.storage.blob.*;

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).

Creare un oggetto client

Per connettere un'app ad Archiviazione BLOB, creare un'istanza di BlobServiceClient.

L’esempio seguente usa BlobServiceClientBuilder per compilare un oggetto BlobServiceClient usando DefaultAzureCredential e illustra come creare client BLOB e contenitori, se necessario:

// Azure SDK client builders accept the credential as a parameter
// TODO: Replace <storage-account-name> with your actual storage account name
BlobServiceClient blobServiceClient = new BlobServiceClientBuilder()
        .endpoint("https://<storage-account-name>.blob.core.windows.net/")
        .credential(new DefaultAzureCredentialBuilder().build())
        .buildClient();

// If needed, you can create a BlobContainerClient object from the BlobServiceClient
BlobContainerClient containerClient = blobServiceClient
        .getBlobContainerClient("<container-name>");

// If needed, you can create a BlobClient object from the BlobContainerClient
BlobClient blobClient = containerClient
        .getBlobClient("<blob-name>");

Per altre informazioni sulla creazione e la gestione di oggetti client, vedere Creare e gestire oggetti client che interagiscono con le risorse dati.

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 uno dei metodi seguenti dalla classe BlobServiceClient:

È anche possibile creare un contenitore usando uno dei metodi seguenti dalla classe BlobContainerClient:

I contenitori vengono creati immediatamente sotto l'account di archiviazione. Non è possibile annidare un contenitore in un altro. Per i metodi create e createBlobContainer viene generata un'eccezione se esiste già un contenitore con lo stesso nome.

L'esempio seguente crea un contenitore da un oggetto BlobServiceClient:

public BlobContainerClient createContainer(BlobServiceClient blobServiceClient, String containerName) {
    // Create the container using the service client object
    BlobContainerClient blobContainerClient = blobServiceClient.createBlobContainer(containerName);

    return blobContainerClient;
}

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://accountname.blob.core.windows.net/default.html

L'esempio seguente crea un nuovo oggetto BlobContainerClient con il nome del contenitore $root, quindi crea il contenitore se non esiste già nell'account di archiviazione:

public void createRootContainer(BlobServiceClient blobServiceClient) {
    // Creates a new BlobContainerClient object by appending the containerName to
    // the end of the URI
    BlobContainerClient blobContainerClient = blobServiceClient.getBlobContainerClient("$root");

    // If the container does not already exist, create it using the container client
    blobContainerClient.createIfNotExists();
}

Risorse

Per altre informazioni sulla creazione di un contenitore tramite la libreria client di Archiviazione BLOB di Azure per Java, vedere le risorse seguenti.

Esempi di codice

Operazioni dell'API REST

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

Risorse per la libreria client

Passaggio successivo

  • Questo articolo fa parte della guida per sviluppatori di Archiviazione BLOB per Java. Vedere l’elenco completo degli articoli della guida per sviluppatori in Creare la propria app.