Метод selectObjectContent
Фильтрует и возвращает содержимое объекта Object Storage на основе запроса на языке S3 Select.
Важно
Чтобы получить возможность отправлять запросы на языке S3 Select, обратитесь в техническую поддержкуs3:GetObject — подробнее читайте в разделе Политика доступа (bucket policy).
Особенности объектов, для которых можно применить запрос:
-
Поддерживаются объекты в формате CSV, JSON и Parquet.
-
Поддерживаются объекты в кодировке UTF-8.
-
Для CSV-файлов поддерживаются методы сжатия GZIP и BZIP2. Для файлов в формате Parquet поддерживается столбчатое сжатие с помощью методов GZIP, Snappy и ZSTD.
-
Объекты могут быть защищены шифрованием на стороне сервера.
Для объектов, которые зашифрованы с помощью управляемых ключей шифрования, хранящихся в YC Key Management Service (SSE-KMS), шифрование на стороне сервера выполняется прозрачно, поэтому вам не нужно дополнительно ничего указывать.
Подробнее о подготовке к работе с API и общем виде запроса см. в разделе Как пользоваться S3 API.
Запрос
POST /{bucket}/{key}?select&select-type=2 HTTP/2
Path параметры
| Параметр | Описание |
|---|---|
bucket |
Имя бакета. |
key |
Ключ объекта. |
Query параметры
| Параметр | Описание |
|---|---|
select |
Обязательный параметр для обозначения типа операции. |
select-type |
Необязательный параметр для обозначения типа запроса. |
Заголовки
Используйте в запросе необходимые общие заголовки.
Схема данных
Параметры запроса передаются в XML формате:
<ListBucketResult
xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<KeyCount>1</KeyCount>
<Name>my-sample-bucket</Name>
<Prefix></Prefix>
<MaxKeys>1000</MaxKeys>
<IsTruncated>false</IsTruncated>
<Contents>
<Key>text.txt</Key>
<LastModified>2025-05-15T07:23:08.030Z</LastModified>
<Owner>
<ID>ajegtlf2q28a********</ID>
<DisplayName>ajegtlf2q28a********</DisplayName>
</Owner>
<ETag>"f75a361db63aa4722fb8e083********"</ETag>
<Size>103</Size>
<StorageClass>STANDARD</StorageClass>
<TagSet></TagSet>
</Contents>
</ListBucketResult>
| Тег | Описание |
|---|---|
SelectObjectContentRequest |
Тег корневого уровня для передачи параметров запроса. Обязательный: да. Путь: /SelectObjectContentRequest. |
Expression |
SQL-выражение, используемое для запроса данных объекта. Тип данных: строка. Обязательный: да. Путь: /SelectObjectContentRequest/Expression. |
ExpressionType |
Тип выражения, используемого для запроса. Тип данных: строка. Допустимые значения: SQL.Обязательный: да. Путь: /SelectObjectContentRequest/ExpressionType. |
InputSerialization |
Описание формата данных в запрашиваемом объекте. Тип данных: InputSerialization.Обязательный: да. Путь: /SelectObjectContentRequest/InputSerialization. |
OutputSerialization |
Описание формата возвращаемых данных. Тип данных: OutputSerialization.Обязательный: да. Путь: /SelectObjectContentRequest/OutputSerialization. |
RequestProgress |
Указывает, должно ли быть включено периодическое информирование о ходе выполнения запроса. Тип данных: RequestProgress.Обязательный: нет. Путь: /SelectObjectContentRequest/RequestProgress. |
ScanRange |
Задает диапазон байтов объекта, из которого будут получены записи. Запись обрабатывается, когда ее первый байт содержится в диапазоне. Применяется только для объектов в формате CSV. Тип данных: ScanRange.Обязательный: нет. Путь: /SelectObjectContentRequest/ScanRange. |
Ответ
Заголовки
Ответ может содержать только общие заголовки.
Коды ответов
Перечень возможных ответов смотрите в разделе Ответы.
Успешный ответ содержит дополнительные данные в формате XML, схема которого описана ниже.
Схема данных
<ListBucketResult
xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<KeyCount>1</KeyCount>
<Name>my-sample-bucket</Name>
<Prefix></Prefix>
<MaxKeys>1000</MaxKeys>
<IsTruncated>false</IsTruncated>
<Contents>
<Key>text.txt</Key>
<LastModified>2025-05-15T07:23:08.030Z</LastModified>
<Owner>
<ID>ajegtlf2q28a********</ID>
<DisplayName>ajegtlf2q28a********</DisplayName>
</Owner>
<ETag>"f75a361db63aa4722fb8e083********"</ETag>
<Size>103</Size>
<StorageClass>STANDARD</StorageClass>
<TagSet></TagSet>
</Contents>
</ListBucketResult>
| Тег | Описание |
|---|---|
Payload |
Тег корневого уровня для передачи параметров ответа. Путь: /Payload. |
Cont |
Сообщение, указывающее, что запрос обрабатывается. Путь: /Payload/Cont. |
End |
Сообщение, указывающее, что запрос обработан. Путь: /Payload/End. |
Progress |
Информация о ходе выполнения запроса. Путь: /Payload/Progress. |
Records |
Результат запроса. Путь: /Payload/Records. |
Stats |
Статистика по обработанным данным. Высылается один раз в конце запроса. Путь: /Payload/Stats. |