Condividi tramite


Impostare o modificare il livello di accesso di un BLOB in blocchi con Java

Questo articolo illustra come impostare o modificare il livello di accesso per un BLOB in blocchi usando la libreria client Archiviazione di Azure per Java.

Prerequisiti

  • Questo articolo presuppone che sia già stato configurato un progetto per l'uso con la libreria client Archiviazione BLOB di Azure per Java. Per informazioni sulla configurazione del progetto, tra cui l'installazione del pacchetto, l'aggiunta import di direttive e la creazione di un oggetto client autorizzato, vedere Introduzione a Archiviazione di Azure e Java.
  • Il meccanismo di autorizzazione deve disporre delle autorizzazioni per impostare il livello di accesso del BLOB. Per altre informazioni, vedere le linee guida per l'autorizzazione per l'operazione API REST seguente:

Informazioni sui livelli di accesso blob in blocchi

Per gestire i costi per le esigenze di archiviazione, può essere utile organizzare i dati in base alla frequenza di accesso e alla durata della conservazione. Archiviazione di Azure offre livelli di accesso diversi in modo da poter archiviare i dati BLOB nel modo più conveniente in base al modo in cui viene usato.

Livelli di accesso per i dati BLOB

Archiviazione di Azure livelli di accesso includono:

  • Livello ad accesso frequente: un livello online ottimizzato per l'archiviazione dei dati a cui si accede o viene modificato di frequente. Il livello ad accesso frequente ha i costi di archiviazione più elevati, ma i costi di accesso più bassi.
  • Livello ad accesso sporadico: un livello online ottimizzato per l'archiviazione dei dati a cui si accede raramente o viene modificato. I dati nel livello ad accesso sporadico devono essere archiviati per un minimo di 30 giorni. Il livello ad accesso sporadico ha costi di archiviazione inferiori e costi di accesso più elevati rispetto al livello ad accesso frequente.
  • Livello ad accesso sporadico: un livello online ottimizzato per l'archiviazione dei dati a cui si accede raramente o viene modificato. I dati nel livello ad accesso saltuario devono rimanere archiviati per almeno 90 giorni. Il livello di accesso saltuario presenta costi di archiviazione più bassi e costi di accesso più alti rispetto al livello di accesso frequente.
  • Livello archivio: un livello offline ottimizzato per l'archiviazione dei dati a cui si accede raramente e che presenta requisiti di latenza flessibili nell'ordine di ore. I dati nel livello archivio devono essere archiviati per un minimo di 180 giorni.

Per altre informazioni sui livelli di accesso, vedere Livelli di accesso per i dati BLOB.

Mentre un BLOB è nel livello di accesso Archivio, viene considerato offline e non può essere letto o modificato. Per leggere o modificare i dati in un BLOB archiviato, è prima necessario riattivare il BLOB in un livello online. Per altre informazioni sulla riattivazione di un BLOB dal livello Archivio a un livello online, vedere Riattivazione blob dal livello Archivio.

Limitazioni

L'impostazione del livello di accesso è consentita solo nei BLOB in blocchi. Per altre informazioni sulle restrizioni relative all'impostazione del livello di accesso di un BLOB in blocchi, vedere Impostare il livello BLOB (API REST).

Nota

Per impostare il livello di accesso su Cold usando Java, è necessario usare una versione minima della libreria client 12.21.0.

Impostare il livello di accesso di un BLOB durante il caricamento

È possibile impostare il livello di accesso di un BLOB al caricamento usando la classe BlobUploadFromFileOptions . L'esempio di codice seguente illustra come impostare il livello di accesso durante il caricamento di un BLOB:

public void uploadBlobWithAccessTier(BlobContainerClient blobContainerClient, Path filePath) {
    String fileName = filePath.getFileName().toString();
    BlobClient blobClient = blobContainerClient.getBlobClient(fileName);

    BlobUploadFromFileOptions options = new BlobUploadFromFileOptions(filePath.toString())
            .setTier(AccessTier.COOL);

    try {
        Response<BlockBlobItem> blockBlob = blobClient.uploadFromFileWithResponse(options, null, null);
    } catch (UncheckedIOException ex) {
        System.err.printf("Failed to upload from file: %s%n", ex.getMessage());
    }
}

Per altre informazioni sul caricamento di un BLOB con Java, vedere Caricare un BLOB con Java.

Modificare il livello di accesso per un BLOB in blocchi esistente

È possibile modificare il livello di accesso di un BLOB in blocchi esistente usando uno dei metodi seguenti:

L'esempio di codice seguente illustra come modificare il livello di accesso in Cool per un BLOB esistente:

public void changeBlobAccessTier(BlobClient blobClient) {
    // Change the blob's access tier to cool
    blobClient.setAccessTier(AccessTier.COOL);
}

Se si riattiva un BLOB archiviato, usare il metodo setAccessTierWithResponse . Impostare il tier parametro su un valore AccessTier valido di HOT, COOL, COLDo ARCHIVE. Facoltativamente, è possibile impostare il priority parametro su un valore HIGH RehydratePriority valido o STANDARD.

L'esempio di codice seguente illustra come riattivare un BLOB archiviato modificando il livello di accesso su Frequente:

public void rehydrateBlobSetAccessTier(BlobClient blobClient) {
    // Rehydrate the blob to hot tier using a standard rehydrate priority
    blobClient.setAccessTierWithResponse(
        AccessTier.HOT,
        RehydratePriority.STANDARD,
        null, 
        null, 
        null);
}

Il metodo setAccessTierWithResponse può anche accettare un parametro BlobSetAccessTierOptions per specificare le opzioni di configurazione.

Copiare un BLOB in un livello di accesso diverso

È possibile modificare il livello di accesso di un BLOB in blocchi esistente specificando un livello di accesso come parte di un'operazione di copia. Per modificare il livello di accesso durante un'operazione di copia, usare la classe BlobBeginCopyOptions .

È possibile usare il metodo setTier per specificare il valore accessTier come HOT, COOL, COLDo ARCHIVE. Se si riattiva un BLOB dal livello archivio usando un'operazione di copia, usare il metodo setRehydratePriority per specificare il valore RehydratePriority come HIGH o STANDARD.

L'esempio di codice seguente illustra come riattivare un BLOB archiviato nel livello ad accesso frequente usando un'operazione di copia:

public void rehydrateBlobUsingCopy(
    BlobClient sourceArchiveBlob,
    BlobClient destinationRehydratedBlob) {
    // Note: the destination blob must have a different name than the archived source blob

    // Start the copy operation and wait for it to complete
    final SyncPoller<BlobCopyInfo, Void> poller = destinationRehydratedBlob.beginCopy(
            new BlobBeginCopyOptions(sourceArchiveBlob.getBlobUrl())
                    .setTier(AccessTier.HOT)
                    .setRehydratePriority(RehydratePriority.STANDARD));
                    
    PollResponse<BlobCopyInfo> response = poller
            .waitUntil(LongRunningOperationStatus.SUCCESSFULLY_COMPLETED);
}

Per altre informazioni sulla copia di un BLOB con Java, vedere Copiare un BLOB con Java.

Risorse

Per altre informazioni sull'impostazione dei livelli di accesso tramite la libreria client Archiviazione BLOB di Azure per Java, vedere 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 l'impostazione dei livelli di accesso usano l'operazione API REST seguente:

Risorse della libreria client

Esempi di codice

Vedi anche