Introduzione ad Archiviazione BLOB di Azure e Java

Questo articolo illustra come connettersi ad Archiviazione BLOB di Azure usando la libreria client di Archiviazione BLOB di Azure per Java. Dopo la connessione, usare le guide per sviluppatori per informazioni sul funzionamento del codice su contenitori, BLOB e funzionalità del servizio di archiviazione BLOB.

Per iniziare con un esempio completo, vedere Avvio rapido: Archiviazione BLOB di Azure libreria client per Java.

Riferimento API | Pacchetto (Maven) | Codice sorgente della libreria | Esempi | Inviare feedback

Prerequisiti

Impostare il progetto

Nota

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

Usare Maven per creare una nuova app console o aprire un progetto esistente. Seguire questa procedura per installare i pacchetti e aggiungere le direttive import necessarie.

Installare i pacchetti

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

Includere il file BOM

Aggiungere azure-sdk-bom per inserire una dipendenza dall'ultima versione della libreria. Nel frammento di codice seguente sostituire il segnaposto {bom_version_to_target} con il numero di versione. L'uso di azure-sdk-bom permette di non specificare la versione di ogni singola dipendenza. Per altre informazioni sul file BOM, vedere il file LEGGIMI di BOM di Azure SDK.

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.azure</groupId>
            <artifactId>azure-sdk-bom</artifactId>
            <version>{bom_version_to_target}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

Aggiungere gli elementi di dipendenza seguenti al gruppo di dipendenze. La dipendenza azure-identity è necessaria per le connessioni senza password ai servizi di Azure.

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-storage-blob</artifactId>
</dependency>
<dependency>
      <groupId>com.azure</groupId>
      <artifactId>azure-storage-common</artifactId>
</dependency>
<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-identity</artifactId>
</dependency>

Includere una dipendenza diretta

Per inserire una dipendenza da una determinata versione della libreria, aggiungere la dipendenza diretta al progetto:

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-storage-blob</artifactId>
    <version>{package_version_to_target}</version>
</dependency>
<dependency>
      <groupId>com.azure</groupId>
      <artifactId>azure-storage-common</artifactId>
      <version>{package_version_to_target}</version>
</dependency>
<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-identity</artifactId>
    <version>{package_version_to_target}</version>
</dependency>

Includere direttive import

Aprire quindi il file di codice e aggiungere le direttive import necessarie. In questo esempio vengono aggiunte le direttive seguenti nel file App.java:

import com.azure.core.credential.*;
import com.azure.identity.*;
import com.azure.storage.blob.*;
import com.azure.storage.blob.models.*;
import com.azure.storage.blob.specialized.*;
import com.azure.storage.common.*;

Informazioni sulla libreria client di BLOB:

Autorizzare l'accesso e connettersi ad Archiviazione BLOB

Per connettere un'applicazione ad Archiviazione BLOB, creare un'istanza della classe BlobServiceClient. È anche possibile usare la classe BlobServiceAsyncClient per la programmazione asincrona. Questo oggetto è il punto di partenza per interagire con le risorse dati a livello di account di archiviazione. È possibile usarlo per operare sull'account di archiviazione e sui relativi contenitori. È anche possibile usare il client del servizio per creare client contenitore o client BLOB, in base alla risorsa da usare.

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

È possibile autorizzare un oggetto BlobServiceClient usando un token di autorizzazione di Microsoft Entra, una chiave di accesso all'account o una firma di accesso condiviso. Per una protezione ottimale, Microsoft consiglia di usare Microsoft Entra ID con identità gestite per autorizzare le richieste sui dati BLOB. Per ulteriori informazioni, vedere Autorizzare l'accesso ai BLOB usando Microsoft Entra ID.

Per autorizzare con Microsoft Entra ID è necessario usare un'entità di sicurezza. Il tipo di entità di sicurezza da usare dipende dalla posizione in cui viene eseguita l'applicazione. Usare la tabella seguente come guida:

Posizione in cui viene eseguita l'applicazione Entità di sicurezza principale Linee guida
Computer locale (sviluppo e test) Entità servizio Per informazioni su come registrare l'app, configurare un gruppo di Microsoft Entra, assegnare ruoli e configurare le variabili di ambiente, vedere Autorizzare l'accesso usando le entità servizio per sviluppatori.
Computer locale (sviluppo e test) Identità utente Per informazioni su come configurare un gruppo di Microsoft Entra, assegnare ruoli e accedere ad Azure, vedere Autorizzare l'accesso usando le credenziali per sviluppatori.
Ospitata in Azure Identità gestita Per informazioni su come abilitare l'identità gestita e assegnare ruoli, vedere Autorizzare l'accesso dalle app ospitate in Azure usando un'identità gestita.
Ospitata all'esterno di Azure (ad esempio, app locali) Entità servizio Per informazioni su come registrare l'app, assegnare ruoli e configurare le variabili di ambiente, vedere Autorizzare l'accesso dalle app locali usando un'entità servizio dell'applicazione

Autorizzare l'accesso con DefaultAzureCredential

Un modo semplice e sicuro per autorizzare l'accesso e connettersi ad Archiviazione BLOB consiste nell'ottenere un token OAuth creando un'istanza di DefaultAzureCredential. È quindi possibile usare queste credenziali per creare un oggetto BlobServiceClient.

Assicurarsi di avere le dipendenze corrette in pom.xml e le direttive di importazione necessarie, come descritto in Configurare il progetto.

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>");

Configurare il TTL di JVM per le ricerche dei nomi DNS

La macchina virtuale Java (JVM) memorizza nella cache le risposte dalle ricerche riuscite dei nomi DNS per un periodo di tempo specificato, noto come durata (TTL). Il valore TTL predefinito per molti JVM è -1, il che significa che la JVM memorizza nella cache la risposta per un periodo illimitato o fino al riavvio della JVM.

Poiché le risorse di Azure usano voci di nome DNS che possono cambiare, è consigliabile impostare il valore TTL di JVM su 10 secondi. Questa configurazione garantisce che venga restituito un indirizzo IP aggiornato per una risorsa con la query DNS successiva.

Per modificare il valore TTL a livello globale per tutte le applicazioni che usano la JVM, impostare la networkaddress.cache.ttl proprietà nel java.security file.

networkaddress.cache.ttl=10

Per Java 8, il java.security file si trova nella $JAVA_HOME/jre/lib/security directory . Per Java 11 e versioni successive, il file si trova nella $JAVA_HOME/conf/security directory .

Compilare l'app

Quando si creano applicazioni per lavorare con le risorse dati in Archiviazione BLOB di Azure, il codice interagisce principalmente con tre tipi di risorse: account di archiviazione, contenitori e BLOB. Per altre informazioni su questi tipi di risorse, sul modo in cui sono correlate e sul modo in cui le app interagiscono con le risorse, vedere Informazioni sull'interazione delle app con le risorse dati di Archiviazione BLOB.

Le guide seguenti illustrano come accedere ai dati ed eseguire azioni specifiche usando la libreria client di Archiviazione di Azure per Java:

Guida Descrizione
Configurare un criterio di ripetizione Implementare criteri di ripetizione per le operazioni client.
Copiare BLOB Copiare un BLOB da una posizione a un'altra.
Creare un contenitore Creare contenitori BLOB.
Creare una firma di accesso condiviso di delega utente Creare una firma di accesso condiviso di delega utente per un contenitore o un BLOB.
Creare e gestire lease di BLOB Impostare e gestire un blocco su un BLOB.
Creare e gestire lease di contenitori Impostare e gestire un blocco su un contenitore.
Eliminare e ripristinare BLOB Eliminare BLOB e, se l'eliminazione temporanea è abilitata, ripristinare i BLOB eliminati.
Eliminare e ripristinare contenitori Eliminare contenitori e, se l'eliminazione temporanea è abilitata, ripristinare i contenitori eliminati.
Scaricare BLOB Scaricare i BLOB usando stringhe, flussi e percorsi di file.
Trovare BLOB usando tag Impostare e recuperare tag e usare i tag per trovare i BLOB.
Elencare i BLOB Elencare i BLOB in modi diversi.
Elencare i contenitori Elencare i contenitori in un account e le varie opzioni disponibili per personalizzare un elenco.
Gestire proprietà e metadati (BLOB) Ottenere e impostare le proprietà e i metadati per i BLOB.
Gestire proprietà e metadati (contenitori) Ottenere e impostare le proprietà e i metadati per i contenitori.
Ottimizzazione delle prestazioni per i trasferimenti di dati Ottimizzare le prestazioni di AzCopy per le operazioni di trasferimento dei dati.
Impostare o modificare il livello di accesso di un BLOB Impostare o modificare il livello di accesso di un BLOB in blocchi.
Caricare i BLOB Informazioni su come caricare BLOB usando stringhe, flussi, percorsi di file e altri metodi.