Поиск больших двоичных объектов по тегам в контейнере
Операция 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
операцию, как описано ниже.
Служба хранилища 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:Microsoft.Storage/storageAccounts/blobServices/containers/blobs/filter/action
- Встроенная роль с наименьшими привилегиями:владелец данных BLOB-объектов хранилища
Дополнительные сведения о назначении ролей с помощью 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 |
Операции с перечислением и созданием контейнеров |
Дополнительные сведения о ценах на указанную категорию выставления счетов см. в разделе Цены на Хранилище BLOB-объектов Azure.
См. также раздел
Управление и поиск данных на Хранилище BLOB-объектов Azure с помощью тегов индекса BLOB-объектов
Авторизация запросов к службе хранилища Azure
Коды состояний и ошибок
Коды ошибок хранилища BLOB-объектов