Управление многоуровневым хранилищем в коде приложения

Завершено

Вы можете настроить служба хранилища Azure и управлять ими в коде. Это значит, что вы можете создавать собственные приложения для использования уровней хранилища.

Используя пример производственной компании, вы хотите спланировать создание некоторых пользовательских приложений для управления жизненным циклом документации.

В этом уроке вы сравните способы настройки уровней хранилища и управления ими с использованием ряда сред программирования. Вам не нужно выполнять какие-либо шаги, описанные в этом уроке; Вы сделаете это в следующем уроке.

C# (.NET)

Импортируйте в проект пакет Azure.Storage.Blob с помощью NuGet.

Добавьте в код следующие директивы using:

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

Пакет SDK Azure позволяет перечислить все большие двоичные объекты в контейнере БОЛЬШИХ двоичных объектов вместе со свойствами каждого большого двоичного объекта, включая уровень хранилища.

В следующем коде показано, как использовать метод GetBlobsAsync в BlobClientContianer для получения коллекции объектов BlobItem. Объект BlobItem инкапсулирует свойства большого двоичного объекта в хранилище Azure, но не содержит фактические данные BLOB-объектов.

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

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

Если вы заинтересованы только в уровне хранилища одного большого двоичного объекта и знаете имя большого двоичного объекта, можно использовать GetPropertiesAsync метод для BlobClient объекта, возвращающего свойства большого двоичного объекта, включая уровень хранилища.

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}");

Чтобы изменить уровень хранилища большого двоичного объекта программным способом, используйте SetAccessTier метод в BlobClient классе.

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

REST

REST API предоставляет операцию задания уровня для блочного большого двоичного объекта. Она представляет собой HTTP-запрос PUT в следующем формате:

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

Параметр — Archive, Cold, Cool или Hot.tier

Чтобы получить уровень хранилища для блочного большого двоичного объекта, используйте операцию получения свойств большого двоичного объекта. Она представляет собой HTTP-запрос HEAD (возвращается только заголовок ответа, но не содержимое большого двоичного объекта):

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

В заголовке ответа x-ms-access-tier указан уровень хранилища большого двоичного объекта.