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

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:

Il metodo getProperties recupera le proprietà e i metadati del contenitore chiamando sia l'operazione Get Blob Properties, sia l'operazione Get Blob Metadata.

Esempi di codice

Risorse per la libreria client