Поделиться через


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

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

Запрос

Запрос можно создать Find Blobs by Tags in Container следующим образом. Рекомендуется использовать ПРОТОКОЛ 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 Необязательный элемент. Указывает максимальное количество возвращаемых больших двоичных объектов. Если в запросе не указано 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 отсутствует в запросе, этот заголовок не будет присутствовать в ответе.

Текст ответа

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

<?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 in Container операцию, как описано ниже.

Важно!

Корпорация Майкрософт рекомендует использовать Microsoft Entra ID с управляемыми удостоверениями для авторизации запросов к службе хранилища Azure. Microsoft Entra ID обеспечивает более высокий уровень безопасности и простоту использования по сравнению с авторизацией с общим ключом.

Служба хранилища 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 in Container операции, а также встроенная роль Azure RBAC с наименьшими привилегиями, которая включает это действие:

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

Комментарии

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

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

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

Параметр 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 (недопустимый запрос).

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

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

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

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

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

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