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 manifatturiera, si pianificherà ora la creazione di alcune app 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à. Lo si farà 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 in Archiviazione di Azure, ma non contiene i dati effettivi del BLOB.

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 metodo GetPropertiesAsync su un oggetto BlobClient 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 metodo SetAccessTier sulla classe BlobClient.

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 parametro tier è 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.