Поиск больших двоичных объектов по тегам в операции контейнера
Операция 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-объектов