События
31 мар., 23 - 2 апр., 23
Самое большое событие обучения Fabric, Power BI и SQL. 31 марта – 2 апреля. Используйте код FABINSIDER, чтобы сэкономить $400.
Зарегистрироваться сегодняЭтот браузер больше не поддерживается.
Выполните обновление до Microsoft Edge, чтобы воспользоваться новейшими функциями, обновлениями для системы безопасности и технической поддержкой.
В этой статье показано, как задать или изменить уровень доступа для блочного BLOB-объекта с помощью клиентской библиотеки служба хранилища Azure для .NET.
Если у вас нет существующего проекта, в этом разделе показано, как настроить проект для работы с клиентской библиотекой Хранилище BLOB-объектов Azure для .NET. Ниже приведены шаги по установке пакета, добавлению using
директив и созданию авторизованного клиентского объекта. Дополнительные сведения см. в статье "Начало работы с Хранилище BLOB-объектов Azure и .NET".
В каталоге проекта установите пакеты для клиентских библиотек Хранилище BLOB-объектов Azure и удостоверений Azure с помощью dotnet add package
команды. Пакет Azure.Identity необходим для бессерверных подключений к службам Azure.
dotnet add package Azure.Storage.Blobs
dotnet add package Azure.Identity
Добавьте эти using
директивы в начало файла кода:
using Azure.Identity;
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using Azure.Storage.Blobs.Specialized;
Для некоторых примеров кода в этой статье могут потребоваться дополнительные using
директивы.
Чтобы подключить приложение к хранилищу BLOB-объектов, создайте экземпляр BLOBServiceClient. В следующем примере показано, как создать клиентский объект с помощью DefaultAzureCredential
авторизации:
public BlobServiceClient GetBlobServiceClient(string accountName)
{
BlobServiceClient client = new(
new Uri($"https://{accountName}.blob.core.windows.net"),
new DefaultAzureCredential());
return client;
}
Вы можете зарегистрировать клиент службы для внедрения зависимостей в приложении .NET.
Вы также можете создавать клиентские объекты для определенных контейнеров или больших двоичных объектов. Дополнительные сведения о создании клиентских объектов и управлении ими см. в статье "Создание клиентских объектов и управление ими", взаимодействующих с ресурсами данных.
Механизм авторизации должен иметь необходимые разрешения для задания уровня доступа большого двоичного объекта. Для авторизации с помощью идентификатора Microsoft Entra (рекомендуется), требуется встроенный участник данных хранилища BLOB-объектов хранилища ролей или более поздней версии. Дополнительные сведения см. в руководстве по авторизации для задания уровня BLOB-объектов.
Чтобы управлять затратами на хранение, можно упорядочить данные на основе частоты доступа к ней и длительности хранения. Хранилище Azure предоставляет различные уровни доступа, что позволяет наиболее эффективно хранить данные BLOB-объектов в зависимости от того, как они используются.
Уровни доступа службы хранилища Azure:
Дополнительные сведения о уровнях доступа см. в разделе "Уровни доступа" для данных BLOB-объектов.
Хотя BLOB-объект находится на архивном уровне хранилища, он считается автономным элементом и не может быть считан или изменен. Чтобы считывать или изменять данные в архивном BLOB-объекте, необходимо сначала восстановить большой двоичный объект на онлайн-уровне. Дополнительные сведения о повторном создании большого двоичного объекта с уровня "Архив" на онлайн-уровне см. в статье о повторном извлечении BLOB-объектов из архивного уровня.
Установка уровня доступа разрешена только для блочных BLOB-объектов. Дополнительные сведения об ограничениях на настройку уровня доступа блочного BLOB-объекта см. в разделе Set Blob Tier (REST API).
Примечание
Чтобы задать уровень доступа для Cold
использования .NET, необходимо использовать минимальную версию клиентской библиотеки 12.15.0.
Уровень доступа большого двоичного объекта можно задать для отправки с помощью класса BlobUploadOptions . В следующем примере кода показано, как задать уровень доступа при отправке большого двоичного объекта:
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();
}
Дополнительные сведения о отправке БОЛЬШОго двоичного объекта с помощью .NET см. в статье "Отправка БОЛЬШОго двоичного объекта с помощью .NET".
Уровень доступа существующего блочного BLOB-объекта можно изменить с помощью одной из следующих функций:
В следующем примере кода показано, как изменить уровень доступа для существующего большого двоичного объекта Cool
следующим образом:
public static async Task ChangeBlobAccessTierAsync(
BlobClient blobClient)
{
// Change the access tier of the blob to cool
await blobClient.SetAccessTierAsync(AccessTier.Cool);
}
При повторном создании архивного большого двоичного объекта можно при необходимости задать rehydratePriority
для параметра High
или Standard
.
Уровень доступа существующего блочного BLOB-объекта можно изменить, указав уровень доступа в рамках операции копирования. Чтобы изменить уровень доступа во время операции копирования, используйте класс BlobCopyFromUriOptions и укажите свойство AccessTier . Если вы повторно используете большой двоичный объект из архивного уровня с помощью операции копирования, можно при необходимости задать для High
свойства RehydratePriority значение или Standard
.
В следующем примере кода показано, как восстановить архивный большой двоичный объект на Hot
уровне с помощью операции копирования:
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();
}
Дополнительные сведения о копировании большого двоичного объекта с помощью .NET см. в статье "Копирование большого двоичного объекта с помощью .NET".
Дополнительные сведения о настройке уровней доступа с помощью клиентской библиотеки Хранилище BLOB-объектов Azure для .NET см. в следующих ресурсах.
Пакет SDK Azure для .NET содержит библиотеки, которые создаются на основе REST API Azure, что позволяет взаимодействовать с операциями REST API через знакомые парадигмы .NET. Методы клиентской библиотеки для настройки уровней доступа используют следующую операцию REST API:
События
31 мар., 23 - 2 апр., 23
Самое большое событие обучения Fabric, Power BI и SQL. 31 марта – 2 апреля. Используйте код FABINSIDER, чтобы сэкономить $400.
Зарегистрироваться сегодняОбучение
Модуль
Управление жизненным циклом хранилища BLOB-объектов Azure (предварительная версия) - Training
Узнайте, как управлять доступностью данных во время жизненного цикла хранилища BLOB-объектов Azure.
Сертификация
Создавайте комплексные решения в Microsoft Azure для создания Функции Azure, реализации веб-приложений и управления ими, разработке решений, использующих службу хранилища Azure, и т. д.