Управление многоуровневым хранилищем в коде приложения
Вы можете настроить служба хранилища 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 указан уровень хранилища большого двоичного объекта.