Поиск больших двоичных объектов по тегам в операции контейнера

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

Запрос

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

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

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

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

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

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

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

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

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

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

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

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

Нет.

Ответ

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

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

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

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

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

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

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

Текст ответа

Текст ответа имеет следующий формат:

<?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 с правильным форматом.

Авторизация

Эту операцию может вызывать владелец учетной записи и любой пользователь с подписанным URL-адресом с разрешением на поиск больших двоичных объектов по тегам ( f разрешение SAS).

Кроме того, выполнять эту операцию могут пользователи RBAC с разрешением Microsoft.Storage/storageAccounts/blobServices/containers/blobs/filter/action.

Remarks

Операция Find Blobs by Tags с контейнером поддерживается в REST API версии 2021-04-10 и более поздних версий.

Вторичный индекс, используемый в 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'

Примечание. Значение where параметра URI должно быть правильно закодировано (включая пробелы и операторы). Приведенные выше примеры не приводят к удобочитаемости. @container не поддерживается, если контейнер является частью URI.

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

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

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

См. также

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