Поиск BLOB-объектов по тегам

Операция Find Blobs by Tags находит все большие двоичные объекты в учетной записи хранения, теги которых соответствуют выражению поиска.

Запрос

Запрос можно создать Find Blobs by Tags следующим образом. Рекомендуется использовать ПРОТОКОЛ HTTPS. Замените myaccount именем своей учетной записи хранения.

URI запроса метода GET параметр "Версия HTTP"
https://myaccount.blob.core.windows.net?comp=blobs&where=<expression> HTTP/1.1

Параметры универсального кода ресурса (URI)

В запросе URI можно указать следующие дополнительные параметры.

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

Дополнительные сведения о том, как создать это выражение, см. в разделе Примечания.
marker Необязательный элемент. Строковое значение, определяющее часть результирующих наборов, возвращаемую при следующей операции. Операция возвращает значение маркера в теле ответа, если возвращенный результирующий набор не был завершен. Затем значение маркера можно использовать в последующем вызове для запроса следующего набора элементов.

Значение маркера непрозрачно для клиента.
maxresults Необязательный элемент. Указывает максимальное количество возвращаемых больших двоичных объектов. Если в запросе не указано maxresults или указано значение больше 5000, сервер возвращает до 5000 элементов. При наличии дополнительных результатов служба возвращает маркер продолжения в элементе NextMarker response. В некоторых случаях служба может возвращать меньше результатов, чем maxresults указано. Служба также может возвращать маркер продолжения.

Установка для maxresults значения меньше нуля или равного нулю приводит к возвращению кода ошибки 400 (неправильный запрос).
timeout Необязательный элемент. Выражается в секундах. Дополнительные сведения см. в разделе Установка времени ожидания для операций с хранилищем BLOB-объектов.

Заголовки запросов

В следующей таблице описаны обязательные и необязательные заголовки запросов.

Заголовок запроса Описание
Authorization Обязательный. Указывает схему авторизации, имя учетной записи и подпись. Дополнительные сведения см. в статье Авторизация запросов к Службе хранилища Azure.
Date или x-ms-date Обязательный. Задает время запроса в формате UTC. Дополнительные сведения см. в статье Авторизация запросов к Службе хранилища Azure.
x-ms-version Обязательный для всех авторизованных запросов, но необязательный для анонимных запросов. Задает версию операции, используемой для этого запроса. Дополнительные сведения см. в разделе Управление версиями для служб хранилища Azure.
x-ms-client-request-id Необязательный элемент. Предоставляет созданное клиентом непрозрачное значение с ограничением в 1 кибибайт (КиБ), которое записывается в журналы при настройке ведения журнала. Мы настоятельно рекомендуем использовать этот заголовок для сопоставления действий на стороне клиента с запросами, получаемыми сервером.

Текст запроса

Нет.

Ответ

Ответ включает код состояния HTTP, заголовки ответа и текст ответа.

Код состояния

Успешная операция возвращает код состояния 200 (ОК).

Сведения о кодах состояния см. в разделе Коды состояния и ошибок.

Заголовки ответов

Ответ для этой операции включает следующие заголовки. Ответ также может содержать дополнительные стандартные заголовки HTTP. Все стандартные заголовки соответствуют спецификации протокола HTTP/1.1.

Заголовок ответа Описание
Content-Type Указывает application/xml в качестве типа контента.
Content-Length Задает размер возвращаемого XML-документа в байтах.
x-ms-request-id Однозначно идентифицирует выполненный запрос. Его можно использовать для устранения неполадок с запросом. Дополнительные сведения см. в разделе Устранение неполадок с операциями API.
x-ms-version Указывает версию Хранилище BLOB-объектов Azure, которая использовалась для выполнения запроса.
Date Значение даты и времени в формате UTC, указывающее время, в которое служба отправила ответ.
x-ms-client-request-id Может использоваться для устранения неполадок с запросами и соответствующими ответами. Значение этого заголовка равно значению заголовка x-ms-client-request-id , если он присутствует в запросе и содержит не более 1024 видимых символов ASCII. Если заголовок x-ms-client-request-id отсутствует в запросе, этот заголовок не будет присутствовать в ответе.

Текст ответа

В версии 2020-04-08 и более поздних версиях соответствующие теги большого двоичного объекта инкапсулируются в Tags элементе . Текст ответа имеет следующий формат:

<?xml version="1.0" encoding="utf-8"?>  
<EnumerationResults ServiceEndpoint=http://myaccount.blob.core.windows.net/>  
  <Where>string-value</Where>  
  <Blobs>  
    <Blob>  
      <Name>blob-name</Name>  
      <ContainerName>container-name</ContainerName>  
      <Tags>
        <TagSet>
          <Tag>
            <Key>matching-tag-name1</Key>
            <Value>matching-tag-value1</Value>
          </Tag>
          <Tag>
            <Key>matching-tag-name2</Key>
            <Value>matching-tag-value2</Value>
          </Tag>
        </TagSet>
      </Tags> 
    </Blob>  
  </Blobs>  
  <NextMarker />  
</EnumerationResults>  

Текст ответа представляет собой XML-документ с правильным форматом UTF-8.

Авторизация

При вызове любой операции доступа к данным в службе хранилища Azure требуется авторизация. Вы можете авторизовать Find Blobs by Tags операцию, как описано ниже.

Служба хранилища Azure поддерживает использование Microsoft Entra ID для авторизации запросов к данным BLOB-объектов. С помощью Microsoft Entra ID можно использовать управление доступом на основе ролей Azure (Azure RBAC) для предоставления разрешений субъекту безопасности. Субъект безопасности может быть пользователем, группой, субъектом-службой приложения или управляемым удостоверением Azure. Субъект безопасности проходит проверку подлинности с помощью Microsoft Entra ID для возврата маркера OAuth 2.0. Затем маркер можно использовать для авторизации запроса к службе BLOB-объектов.

Дополнительные сведения об авторизации с помощью Microsoft Entra ID см. в статье Авторизация доступа к BLOB-объектам с помощью Microsoft Entra ID.

Разрешения

Ниже перечислены действия RBAC, необходимые для Microsoft Entra пользователя, группы или субъекта-службы для вызова Find Blobs by Tags операции, а также встроенная роль Azure RBAC с наименьшими привилегиями, которая включает это действие:

Дополнительные сведения о назначении ролей с помощью Azure RBAC см. в статье Назначение роли Azure для доступа к данным BLOB-объектов.

Комментарии

Эта Find Blobs by Tags операция поддерживается в REST API версии 2019-12-12 и более поздних.

Для учетных записей с включенным иерархическим пространством Find Blobs by Tags имен операция не поддерживается, так как теги больших двоичных объектов не поддерживаются для учетных записей иерархического пространства имен.

Вторичный индекс, который использует, Find Blobs by Tags в конечном итоге является согласованным. Обновления к тегам BLOB-объектов с помощью Set Blob Tags могут быть не сразу видимы для Find Blobs by Tags операций.

Создание выражения поиска

Параметр where URI находит большие двоичные объекты в учетной записи хранения, теги которых соответствуют выражению. Выражение должно иметь значение , true чтобы большой двоичный объект возвращался в результирующем наборе.

Служба хранилища поддерживает подмножество грамматики предложения ANSI SQL WHERE для значения where=<expression> параметра запроса. Служба хранилища поддерживает следующие операторы:

Оператор Описание Пример
= Равно &where=Status = 'In Progress'
> Больше чем &where=LastModified > '2018-06-18 20:51:26Z'
>= Больше или равно &where=Priority >= '05'
< Меньше чем &where=Age < '032'
<= Меньше или равно &where=Reviewer <= 'Smith'
AND Логическое И &where=Name > 'C' AND Name < 'D'
&where=Age > '032' AND Age < '100'
@container Указание контейнера &where=@container='mycontainer' AND Name = 'C'

Примечание

Значение where параметра URI должно быть правильно закодировано (включая пробелы и операторы). В предыдущих примерах это не указано для удобочитаемости.

Все значения тегов являются строками. Поддерживаемые бинарные реляционные операторы используют лексикографическую сортировку значений тегов. Для поддержки нестроковых типов данных, включая числа и даты, необходимо использовать соответствующее заполнение и сортируемое форматирование. Значения тегов должны быть заключены в одинарные кавычки.

Если имена тегов являются обычными идентификаторами SQL, они могут присутствовать без экранирования. Если они содержат специальные символы, они должны быть разделены двойными кавычками (например, "TagName" = TagValue). Рекомендуется всегда заключать имена тегов в двойные кавычки.

Служба хранилища отклоняет любой запрос, содержащий недопустимое выражение с кодом ошибки 400 (недопустимый запрос).

Выставление счетов

Запросы на ценообразование могут поступать от клиентов, использующих API хранилища BLOB-объектов, напрямую через REST API хранилища BLOB-объектов или из клиентской библиотеки службы хранилища Azure. Эти запросы начисляют плату за транзакцию. Тип транзакции влияет на способ оплаты учетной записи. Например, транзакции чтения начисляются к категории выставления счетов, отличной от категории операций записи. В следующей таблице показана категория выставления счетов для Find Blobs by Tags запросов на основе типа учетной записи хранения.

Операция Тип учетной записи хранения Категория выставления счетов
Поиск BLOB-объектов по тегам Блочный BLOB-объект (ценовая категории "Премиум")
Общего назначения версии 2 (цен. категория "Стандартный")
Стандартная общего назначения версии 1
Операции с перечислением и созданием контейнеров

Дополнительные сведения о ценах на указанную категорию выставления счетов см. в разделе Цены на Хранилище BLOB-объектов Azure.

См. также раздел

Управление и поиск данных на Хранилище BLOB-объектов Azure с помощью тегов индекса BLOB-объектов
Авторизация запросов к службе хранилища Azure
Коды состояний и ошибок
Коды ошибок хранилища BLOB-объектов