Condividi tramite


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

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

Prerequisiti

Configurazione dell'ambiente

Se non si dispone di un progetto esistente, questa sezione illustra come configurare un progetto per l'uso con la libreria client Archiviazione BLOB di Azure per .NET. I passaggi includono l'installazione dei pacchetti, l'aggiunta using di direttive e la creazione di un oggetto client autorizzato. Per informazioni dettagliate, vedere Introduzione a Archiviazione BLOB di Azure e .NET.

Installare i pacchetti

Nella directory del progetto installare i pacchetti per le librerie client di Archiviazione BLOB di Azure e Azure Identity usando il comando dotnet add package. Il pacchetto Azure.Identity è necessario per le connessioni senza password ai servizi di Azure.

dotnet add package Azure.Storage.Blobs
dotnet add package Azure.Identity

Aggiungere le direttive using

Aggiungere queste using direttive all'inizio del file di codice:

using Azure.Identity;
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using Azure.Storage.Blobs.Specialized;

Alcuni esempi di codice in questo articolo potrebbero richiedere direttive aggiuntive using .

Creare un oggetto client

Per connettere un'app all'archiviazione BLOB, creare un'istanza di BlobServiceClient. Nell'esempio seguente viene illustrato come creare un oggetto client usando DefaultAzureCredential per l'autorizzazione:

public BlobServiceClient GetBlobServiceClient(string accountName)
{
    BlobServiceClient client = new(
        new Uri($"https://{accountName}.blob.core.windows.net"),
        new DefaultAzureCredential());

    return client;
}

È anche possibile registrare un client del servizio per l'inserimento delle dipendenze in un'app .NET. Per altre informazioni sulla creazione e la gestione di oggetti client, vedere Creare e gestire oggetti client che interagiscono con le risorse dati.

Autorizzazione

Il meccanismo di autorizzazione deve disporre delle autorizzazioni necessarie per impostare il livello di accesso di un BLOB. Per l'autorizzazione con Microsoft Entra ID (scelta consigliata), è necessario il ruolo predefinito Controllo degli accessi in base al ruolo di Azure Collaboratore ai dati dei BLOB di archiviazione o versione successiva. Per altre informazioni, vedere le linee guida per l'autorizzazione per Impostare il livello BLOB.

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 all'utilizzo.

Livelli di accesso per i dati BLOB

I livelli di accesso di Archiviazione di Azure includono:

  • Livello di accesso frequente: livello online ottimizzato per l'archiviazione dei dati a cui si accede o che vengono modificati di frequente. Il livello di accesso frequente ha i costi di archiviazione più elevati, ma i costi di accesso più bassi.
  • Livello di accesso sporadico: livello online ottimizzato per l'archiviazione dei dati a cui si accede o che vengono modificati non di frequente. I dati nel livello di accesso sporadico devono rimanere archiviati per almeno 30 giorni. Il livello di accesso sporadico presenta costi di archiviazione più bassi e costi di accesso più alti rispetto al livello di 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 di 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 di accesso archivio: livello offline ottimizzato per l'archiviazione dei dati a cui si accede raramente e che prevede requisiti di latenza flessibili, nell'ordine di ore. I dati che si trovano nel livello archivio devono rimanere archiviati per almeno 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.

Restrizioni

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 .NET, è necessario usare una versione minima della libreria client 12.15.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 BlobUploadOptions . L'esempio di codice seguente illustra come impostare il livello di accesso durante il caricamento di un BLOB:

public static async Task UploadWithAccessTierAsync(
    BlobContainerClient containerClient,
    string localFilePath)
{
    string fileName = Path.GetFileName(localFilePath);
    BlockBlobClient blockBlobClient = containerClient.GetBlockBlobClient(fileName);

    var uploadOptions = new BlobUploadOptions()
    {
        AccessTier = AccessTier.Cool
    };

    FileStream fileStream = File.OpenRead(localFilePath);
    await blockBlobClient.UploadAsync(fileStream, uploadOptions);
    fileStream.Close();
}

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

Modificare il livello di accesso per un BLOB in blocchi esistente

È possibile modificare il livello di accesso di un BLOB in blocchi esistente usando una delle funzioni seguenti:

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

public static async Task ChangeBlobAccessTierAsync(
    BlobClient blobClient)
{
    // Change the access tier of the blob to cool
    await blobClient.SetAccessTierAsync(AccessTier.Cool);
}

Se si riattiva un BLOB archiviato, facoltativamente è possibile impostare il rehydratePriority parametro su High o Standard.

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 BlobCopyFromUriOptions e specificare la proprietà AccessTier . Se si riattiva un BLOB dal livello archivio usando un'operazione di copia, facoltativamente è possibile impostare la proprietà RehydratePriority su High o Standard.

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

public static async Task RehydrateBlobUsingCopyAsync(
    BlobClient sourceArchiveBlob,
    BlobClient destinationRehydratedBlob)
{
    // Note: the destination blob must have a different name than the archived source blob

    // Configure copy options to specify hot tier and standard priority
    BlobCopyFromUriOptions copyOptions = new()
    {
        AccessTier = AccessTier.Hot,
        RehydratePriority = RehydratePriority.Standard
    };

    // Copy source blob from archive tier to destination blob in hot tier
    CopyFromUriOperation copyOperation = await destinationRehydratedBlob
        .StartCopyFromUriAsync(sourceArchiveBlob.Uri, copyOptions);
    await copyOperation.WaitForCompletionAsync();
}

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

Risorse

Per altre informazioni sull'impostazione dei livelli di accesso tramite la libreria client Archiviazione BLOB di Azure per .NET, vedere le risorse seguenti.

Operazioni dell'API REST

Azure SDK per .NET contiene librerie basate sull'API REST di Azure che consentono di interagire con le operazioni dell'API REST tramite paradigmi .NET 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