Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье показано, как использовать индексные теги BLOB-объектов для управления и поиска данных с помощью клиентской библиотеки Azure Storage для .NET.
Предварительные условия
- Подписка Azure — создайте бесплатную учетную запись.
- Учетная запись хранения Azure — создайте такую учетную запись.
- Последняя версия .NET SDK для вашей операционной системы. Обязательно получите пакет SDK, а не среду выполнения.
Настройка среды
Если у вас нет существующего проекта, в этом разделе показано, как настроить проект для работы с клиентской библиотекой Хранилище 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
директивы в начало файла кода:
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 ID (рекомендуется) требуется встроенная роль Владелец данных блобов хранилища Azure RBAC или выше. Дополнительные сведения см. в руководстве по авторизации для получения тегов BLOB-объектов (REST API), задания тегов BLOB-объектов (REST API) или поиска BLOB-объектов по тегам (REST API).
Сведения о тегах индексов объектов BLOB
Теги индекса Blob классифицируют данные в учетной записи хранения с помощью атрибутов тегов с типом "ключ-значение". Эти теги автоматически индексируются и представляются в виде многомерного индекса с поддержкой поиска для упрощения нахождения данных. В этой статье показано, как задавать, получать и находить данные с помощью тегов индекса больших двоичных объектов.
Теги индекса объектов Blob не поддерживаются для учетных записей хранилища с включенным иерархическим пространством имен. Дополнительные сведения о функции тега индекса BLOB-объектов вместе с известными проблемами и ограничениями см. в статье "Управление и поиск данных BLOB-объектов Azure с тегами индекса BLOB-объектов".
Настройка тегов
Теги индекса можно задать, если код имеет авторизованный доступ к данным блобов с помощью одного из следующих механизмов:
- Субъект безопасности, которому назначена роль Azure RBAC с действием Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/write. Владелец данных Объектов хранения Blob — это встроенная роль, которая включает это действие.
- Метка доступа (SAS) с разрешением на доступ к тегам блоба (
t
разрешение) - Ключ учетной записи
Дополнительную информацию см. в статье Настройка тегов индекса BLOB.
Теги можно установить одним из следующих способов.
В следующем примере показано выполнение этой задачи.
public static async Task SetTags(BlobClient blobClient)
{
Dictionary<string, string> tags =
new Dictionary<string, string>
{
{ "Sealed", "false" },
{ "Content", "image" },
{ "Date", "2020-04-20" }
};
await blobClient.SetTagsAsync(tags);
}
Все теги можно удалить, передав пустой словарь [Dictionary] в метод SetTags или SetTagsAsync, как показано в следующем примере.
Dictionary<string, string> noTags = new Dictionary<string, string>();
await blobClient.SetTagsAsync(noTags);
Связанные статьи |
---|
Управление данными больших двоичных объектов Azure и их поиск с помощью тегов индекса больших двоичных объектов |
Установка тегов Blob (REST API) |
Получить Теги
Теги индекса можно получить, если код имеет авторизованный доступ к BLOB-данным при помощи одного из следующих механизмов:
- Субъект безопасности, которому назначена роль Azure RBAC с действием Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/read. Владелец данных BLOB-объектов хранилища — это встроенная роль, которая включает это действие.
- Подписанный URL (SAS) с разрешением на доступ к тегам объекта BLOB (
t
разрешение) - Ключ учетной записи
Дополнительные сведения см. в разделе "Получение и перечисление тегов индекса BLOB-объектов".
Теги можно получить одним из следующих способов.
В следующем примере показано выполнение этой задачи.
public static async Task GetTags(BlobClient blobClient)
{
Response<GetBlobTagResult> tagsResponse = await blobClient.GetTagsAsync();
foreach (KeyValuePair<string, string> tag in tagsResponse.Value.Tags)
{
Console.WriteLine($"{tag.Key}={tag.Value}");
}
}
Фильтрация и поиск данных с тегами индекса BLOB
Теги индекса можно использовать для поиска и фильтрации данных, если код имеет авторизованный доступ к объектам BLOB с помощью одного из следующих механизмов:
- Субъект безопасности, которому назначена роль Azure RBAC с действием Microsoft.Storage/storageAccounts/blobServices/containers/blobs/filter/action. Владелец данных BLOB-объектов хранилища — это встроенная роль, которая включает это действие.
- Подписанный URL-адрес общего доступа (SAS) с разрешением на фильтрацию BLOB-объектов по тегам (
f
разрешение) - Ключ учетной записи
Дополнительные сведения см. в разделе Поиск данных с использованием тегов индекса BLOB-объектов.
Примечание.
Вы не можете запросить теги индекса для получения предыдущих версий. Теги для предыдущих версий не передаются в обработчик индекса больших двоичных объектов. Дополнительные сведения см. в разделе Ограничения и известные проблемы.
Для поиска данных можно использовать один из следующих методов.
В следующем примере выполняется поиск всех больших двоичных объектов с тегом даты, которая находится между заданным диапазоном.
public static async Task FindBlobsbyTags(BlobServiceClient serviceClient)
{
string query = @"""Date"" >= '2020-04-20' AND ""Date"" <= '2020-04-30'";
// Find Blobs given a tags query
Console.WriteLine("Find Blob by Tags query: " + query + Environment.NewLine);
List<TaggedBlobItem> blobs = new List<TaggedBlobItem>();
await foreach (TaggedBlobItem taggedBlobItem in serviceClient.FindBlobsByTagsAsync(query))
{
blobs.Add(taggedBlobItem);
}
foreach (var filteredBlob in blobs)
{
Console.WriteLine($"BlobIndex result: ContainerName= {filteredBlob.BlobContainerName}, " +
$"BlobName= {filteredBlob.BlobName}");
}
}
Ресурсы
Дополнительные сведения об использовании тегов индекса для управления и поиска данных с помощью клиентской библиотеки Хранилище BLOB-объектов Azure для .NET см. в следующих ресурсах.
Операции REST API
Пакет SDK Azure для .NET содержит библиотеки, которые создаются на основе REST API Azure, что позволяет взаимодействовать с операциями REST API через знакомые парадигмы .NET. Методы клиентской библиотеки для управления и использования тегов индекса BLOB-объектов используют следующие операции REST API.
- Получение тегов BLOB-объектов (REST API)
- Установка тегов BLOB-объектов (REST API)
- Поиск BLOB-объектов по тегам (REST API)
Ресурсы клиентской библиотеки
См. также
- Управление данными больших двоичных объектов Azure и их поиск с помощью тегов индекса больших двоичных объектов
- Использование тегов индекса BLOB-объектов для управления и поиска данных на Хранилище BLOB-объектов Azure
Связанный контент
- Эта статья является частью руководства разработчика хранилища BLOB-объектов для .NET. Дополнительные сведения см. в полном списке статей руководства разработчика по созданию приложения .NET.