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 di Archiviazione di Azure per .NET.

Prerequisiti

Configurazione dell'ambiente

Se non si ha un progetto esistente, questa sezione spiega come configurare un progetto per l'uso con la libreria client di Archiviazione BLOB di Azure per .NET. I passaggi includono l'installazione del pacchetto, l'aggiunta di direttive using e la creazione di un oggetto client autorizzato. Per informazioni dettagliate, vedere Introduzione ad 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 direttive using all'inizio del file del 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 using aggiuntive.

Creare un oggetto client

Per connettere un'app ad 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;
}

È possibile registrare un client del servizio per l'inserimento delle dipendenze in un'app .NET.

È anche possibile creare oggetti client per contenitori o BLOB specifici. 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 un livello di accesso del BLOB. Per l'autorizzazione con Microsoft Entra ID (scelta consigliata), è necessario disporre del ruolo predefinito di Controllo degli accessi in base al ruolo di Azure Collaboratore ai dati del BLOB di archiviazione o ruolo superiore. Per altre informazioni, vedere le indicazioni sulle autorizzazioni per Impostare un livello di 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 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 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.

Quando un BLOB si trova 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 per i 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 tramite .NET, è necessario usare una libreria client minima versione 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, è possibile impostare facoltativamente il parametro rehydratePriority su High oppure 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, è possibile impostare facoltativamente la proprietà RehydratePriority su High oppure Standard.

L’esempio di codice seguente illustra come riattivare un BLOB archiviato nel livello Hot 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 di Archiviazione BLOB di Azure per .NET, vedere le risorse seguenti.

Esempi di codice

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 impostare i livelli di accesso usano l'operazione API REST seguente:

Risorse della libreria client

Vedi anche

  • Questo articolo fa parte della Guida per sviluppatori di Archiviazione BLOB per .NET. Per altre informazioni, vedere l’elenco completo degli articoli della Guida per sviluppatori inCreare la propria app .NET.