Gestire le proprietà e i metadati dei contenitori con Java
Oltre ai dati che contengono, i contenitori BLOB supportano le proprietà di sistema e i metadati definiti dall'utente. Questo articolo illustra come gestire le proprietà di sistema e i metadati definiti dall'utente con la libreria client di Archiviazione di Azure per Java.
Prerequisiti
- Questo articolo presuppone che sia già stato configurato un progetto per l'uso con la libreria client di Archiviazione BLOB di Azure per Java. Per informazioni sulla configurazione del progetto, incluse l'installazione del pacchetto, l'aggiunta di direttive
import
e la creazione di un oggetto client autorizzato, vedere Introduzione ad Archiviazione di Azure e Java. - Il meccanismo di autorizzazione deve disporre delle autorizzazioni per utilizzare proprietà o metadati dei contenitori. Per altre informazioni, vedere le linee guida per l'autorizzazione per le operazioni API REST seguenti:
Informazioni su proprietà e metadati
Proprietà di sistema: le proprietà di sistema esistono su ogni risorsa di archiviazione BLOB. Alcune di esse possono essere lette o impostate, mentre altre sono di sola lettura. Dietro le quinte, alcune proprietà di sistema corrispondono a specifiche intestazioni HTTP standard. La libreria client di Archiviazione di Azure per Java gestisce automaticamente queste proprietà.
Metadati definiti dall'utente: i metadati definiti dall'utente sono costituiti da una o più coppie nome-valore specificate per una risorsa di archiviazione BLOB. È possibile usare i metadati per archiviare valori aggiuntivi con la risorsa. I valori dei metadati sono solo per gli scopi dell'utente e non influiscono sul comportamento della risorsa.
Le coppie nome-valore di metadati sono intestazioni HTTP valide e devono essere conformi alle restrizioni imposte sulle intestazioni HTTP. Per altre informazioni sui requisiti di denominazione dei metadati, vedere Nomi dei metadati.
Recuperare le proprietà del contenitore
Per recuperare le proprietà del contenitore, usare il metodo seguente:
L'esempio di codice seguente recupera le proprietà di sistema di un contenitore e scrive i valori delle proprietà in una finestra della console:
public void getContainerProperties(BlobContainerClient blobContainerClient) {
BlobContainerProperties properties = blobContainerClient.getProperties();
System.out.printf("Public Access Type: %s, Legal Hold? %b, Immutable? %b%n",
properties.getBlobPublicAccess(),
properties.hasLegalHold(),
properties.hasImmutabilityPolicy());
}
Impostare e recuperare i metadati
È possibile specificare i metadati come uno o più coppie nome-valore in una risorsa BLOB o contenitore. Per impostare i metadati, usare il metodo seguente:
L'impostazione dei metadati del contenitore sovrascrive tutti i metadati esistenti associati al contenitore. Non è possibile modificare una sola coppia nome-valore.
L'esempio di codice seguente di esempio imposta i metadati in un contenitore:
public void addContainerMetadata(BlobContainerClient blobContainerClient) {
Map<String, String> metadata = new HashMap<String, String>();
metadata.put("docType", "text");
metadata.put("category", "reference");
try {
blobContainerClient.setMetadata(metadata);
System.out.printf("Set metadata completed %n");
} catch (UnsupportedOperationException error) {
System.out.printf("Failure while setting metadata %n");
}
}
Per recuperare i metadati, chiamare il metodo seguente:
L'esempio seguente legge i valori dei metadati:
public void readContainerMetadata(BlobContainerClient blobContainerClient) {
BlobContainerProperties properties = blobContainerClient.getProperties();
System.out.printf("Container metadata: %n");
properties.getMetadata().entrySet().forEach(metadataItem -> {
System.out.printf(" %s = %s%n", metadataItem.getKey(), metadataItem.getValue());
});
}
Risorse
Per altre informazioni sull'impostazione e il recupero di proprietà e metadati dei contenitori tramite la libreria client di Archiviazione BLOB di Azure per Java, consultare le risorse seguenti.
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 impostare e recuperare proprietà e metadati usano le operazioni API REST seguenti:
- Get Container Properties (API REST)
- Set Container Metadata (API REST)
- Get Container Metadata (API REST)
Il metodo getProperties
recupera le proprietà e i metadati del contenitore chiamando sia l'operazione Get Blob Properties, sia l'operazione Get Blob Metadata.