Gestire l'archiviazione a livelli nel codice dell'app

Completato

È possibile configurare e gestire Archiviazione di Azure nel codice. Ciò significa che è possibile creare app personalizzate per sfruttare la funzionalità dei livelli di archiviazione.

Usando l'esempio dell'azienda di produzione, si vuole ora pianificare la creazione di alcune applicazioni personalizzate per gestire il ciclo di vita della documentazione.

In questa unità si confronteranno i metodi per configurare e gestire i livelli di archiviazione usando diversi ambienti di programmazione. Non è necessario eseguire nessuno dei passaggi di questa unità; questa operazione verrà eseguita nell'unità successiva.

C# (.NET)

Nel progetto importare il pacchetto Azure.Storage.Blobs tramite NuGet.

Aggiungere le direttive using seguenti al codice:

using Azure;
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;

Azure SDK consente di elencare tutti i BLOB in un contenitore BLOB insieme alle proprietà di ogni BLOB, incluso il livello di archiviazione.

Nel codice seguente viene illustrato come utilizzare il metodo GetBlobsAsync su BlobClientContianer per ottenere una raccolta di oggetti BlobItem. L'oggetto BlobItem incapsula le proprietà del BLOB nell'archiviazione di Azure, ma non contiene i dati blob effettivi.

AsyncPageable<BlobItem> blobItems = blobContainerClient.GetBlobsAsync();

await foreach (var blobItem in blobItems)
{
    Console.WriteLine($"Blob name {blobItem.Name}:   Tier {blobItem.Properties.AccessTier}");
}

Se si è interessati solo al livello di archiviazione di un singolo BLOB e si conosce il nome del BLOB, è possibile usare il GetPropertiesAsync metodo su un BlobClient oggetto che restituisce le proprietà del BLOB, incluso il livello di archiviazione.

BlobClient blobClient = blobContainerClient.GetBlobClient(blobName);

Response<BlobProperties> response = await blobClient.GetPropertiesAsync();
BlobProperties blobProperties = response.Value;
string accessTier = blobProperties.AccessTier?.ToString();

Console.WriteLine($"Blob name: {blobName}  Access tier: {accessTier}");

Per modificare il livello di archiviazione di un BLOB a livello di codice, usare il SetAccessTier metodo nella BlobClient classe .

BlobClient blobClient = blobContainerClient.GetBlobClient(blobName);
blobClient.SetAccessTier(AccessTier.Cool);

REST

L'API REST fornisce l'operazione Set Blob Tier su un BLOB in blocchi. Questa operazione è una richiesta PUT HTTP con il formato seguente:

https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=tier

Il tier parametro è Archive, Cold, Cool o Hot.

Per recuperare il livello di archiviazione di un BLOB in blocchi, usare l'operazione Get Blob Properties. Questa è una richiesta HTTP HEAD (non viene restituito il contenuto del BLOB, ma un'intestazione della risposta):

https://myaccount.blob.core.windows.net/mycontainer/myblob

L'intestazione della risposta x-ms-access-tier specifica il livello di archiviazione del BLOB.