Spec-Zone.ru › AWS CLI v2

[ aws . s3api ]

select-object-content

Описание

Примечание

Данная операция не поддерживается для ведер каталогов.

Этот метод фильтрует содержимое объекта Amazon S3 на основе простого запроса SQL. В запросе, наряду с выражением SQL, необходимо указать формат сериализации данных объекта (JSON, CSV или Apache Parquet). Amazon S3 использует этот формат для разбора данных объекта в записи и возвращает только записи, которые соответствуют указанному выражению SQL. Также необходимо указать формат сериализации данных для ответа.

Данная функциональность не поддерживается для Amazon S3 на Outposts.

Для получения дополнительной информации об Amazon S3 Select см. Выбор содержимого объектов и Команда SELECT в руководстве пользователя Amazon S3.

Разрешения

Для выполнения этой операции требуется разрешение s3:GetObject. Amazon S3 Select не поддерживает анонимный доступ. Дополнительную информацию о разрешениях см. в разделе Указание разрешений в политике в руководстве пользователя Amazon S3.

Форматы данных объектов

Вы можете использовать Amazon S3 Select для запросов к объектам с такими свойствами формата:

  • CSV, JSON и Parquet - Объекты должны быть в формате CSV, JSON или Parquet.

  • UTF-8 - UTF-8 — единственный тип кодировки, поддерживаемый Amazon S3 Select.

  • GZIP или BZIP2 - Файлы CSV и JSON могут быть сжаты с помощью GZIP или BZIP2. GZIP и BZIP2 — единственные форматы сжатия, которые поддерживаются Amazon S3 Select для файлов CSV и JSON. Amazon S3 Select поддерживает столбчатое сжатие для Parquet с использованием GZIP или Snappy. Amazon S3 Select не поддерживает сжатие всего объекта для объектов Parquet.

  • Шифрование на стороне сервера - Amazon S3 Select поддерживает запросы к объектам, защищенным шифрованием на стороне сервера. Для объектов, зашифрованных с помощью предоставленных клиентом ключей шифрования (SSE-C), необходимо использовать HTTPS и заголовки, описанные в GetObject. Дополнительную информацию о SSE-C см. в разделе Шифрование на стороне сервера (использование ключей шифрования, предоставленных клиентом) в руководстве пользователя Amazon S3. Для объектов, зашифрованных с помощью управляемых Amazon S3 ключей (SSE-S3) и ключей Amazon Web Services KMS (SSE-KMS), шифрование на стороне сервера обрабатывается прозрачно, поэтому вам ничего не нужно указывать. Дополнительную информацию о шифровании на стороне сервера, включая SSE-S3 и SSE-KMS, см. в разделе Защита данных с помощью шифрования на стороне сервера в руководстве пользователя Amazon S3.

    Работа с телом ответа

Поскольку размер ответа неизвестен, Amazon S3 Select передает ответ в виде последовательности сообщений и включает заголовок Transfer-Encoding со значением chunked в ответе. Дополнительную информацию см. в Приложении: Ответ SelectObjectContent.

Поддержка GetObject

Действие SelectObjectContent не поддерживает следующую функциональность GetObject. Дополнительную информацию см. в GetObject.

  • Range: Хотя вы можете указать диапазон сканирования для запроса Amazon S3 Select (см. SelectObjectContentRequest - ScanRange в параметрах запроса), вы не можете указать диапазон байтов объекта для возврата.

  • Хранилища классов GLACIER, DEEP_ARCHIVE и REDUCED_REDUNDANCY или уровни доступа ARCHIVE_ACCESS и DEEP_ARCHIVE_ACCESS хранилища класса INTELLIGENT_TIERING: Вы не можете запрашивать объекты в хранилищах классов GLACIER, DEEP_ARCHIVE или REDUCED_REDUNDANCY, а также объекты в уровнях доступа ARCHIVE_ACCESS или DEEP_ARCHIVE_ACCESS хранилища класса INTELLIGENT_TIERING. Дополнительную информацию о классах хранилища см. в разделе Использование классов хранилища Amazon S3 в руководстве пользователя Amazon S3.

    Особые ошибки

Список особых ошибок для данной операции см. в списке кодов ошибок SELECT Object Content.

Следующие операции связаны с SelectObjectContent:

  • GetObject
  • GetBucketLifecycleConfiguration
  • PutBucketLifecycleConfiguration

См. также: Документация API AWS

Синтаксис

  select-object-content
--bucket <value>
--key <value>
[--sse-customer-algorithm <value>]
[--sse-customer-key <value>]
[--sse-customer-key-md5 <value>]
--expression <value>
--expression-type <value>
[--request-progress <value>]
--input-serialization <value>
--output-serialization <value>
[--scan-range <value>]
[--expected-bucket-owner <value>]
<outfile>
[--debug]
[--endpoint-url <value>]
[--no-verify-ssl]
[--no-paginate]
[--output <value>]
[--query <value>]
[--profile <value>]
[--region <value>]
[--version <value>]
[--color <value>]
[--no-sign-request]
[--ca-bundle <value>]
[--cli-read-timeout <value>]
[--cli-connect-timeout <value>]
[--cli-binary-format <value>]
[--no-cli-pager]
[--cli-auto-prompt]
[--no-cli-auto-prompt]

Параметры

--bucket (строка)

Ведро S3.

--key (строка)

Ключ объекта.

--sse-customer-algorithm (строка)

Алгоритм шифрования на стороне сервера (SSE), используемый для шифрования объекта. Этот параметр необходим только в том случае, если объект был создан с использованием алгоритма проверки целостности. Дополнительную информацию см. в разделе «Защита данных с помощью ключей SSE-C» в руководстве пользователя Amazon S3.

--sse-customer-key (строка)

Клиентский управляемый ключ шифрования на стороне сервера (SSE). Этот параметр необходим только в том случае, если объект был создан с использованием алгоритма проверки целостности. Дополнительную информацию см. в разделе «Защита данных с помощью ключей SSE-C» в руководстве пользователя Amazon S3.

--sse-customer-key-md5 (строка)

Клиентский управляемый ключ шифрования на стороне сервера (SSE) MD5. Этот параметр необходим только в том случае, если объект был создан с использованием алгоритма проверки целостности. Дополнительную информацию см. в разделе «Защита данных с помощью ключей SSE-C» в руководстве пользователя Amazon S3.

--expression (строка)

Выражение для запроса объекта.

--expression-type (строка)

Тип предоставленного выражения (например, SQL).

Возможные значения:

  • SQL

--request-progress (структура)

Указывает, следует ли включить периодическую информацию о прогрессе запроса.

Enabled -> (булево)

Указывает, должны ли отправляться периодические фреймы QueryProgress. Допустимые значения: TRUE, FALSE. Значение по умолчанию: FALSE.

Сокращенная синтаксическая запись:

Enabled=boolean

Синтаксис JSON:

{
  "Enabled": true|false
}

--input-serialization (структура)

Описание формата данных в объекте, который запрашивается.

CSV -> (структура)

Описание сериализации объекта, закодированного в формате CSV.

FileHeaderInfo -> (строка)

Описание первой строки ввода. Допустимые значения:

  • NONE : Первая строка не является заголовком.
  • IGNORE : Первая строка является заголовком, но вы не можете использовать значения заголовка для указания столбца в выражении. Вы можете использовать позицию столбца (например, _1, _2, …) для указания столбца (SELECT s._1 FROM OBJECT s).
  • Use : Первая строка является заголовком, и вы можете использовать значение заголовка для идентификации столбца в выражении (SELECT "name" FROM OBJECT).

Comments -> (строка)

Один символ, используемый для указания того, что строка должна быть пропущена, когда символ присутствует в начале этой строки. Вы можете указать любой символ для обозначения строки комментария. Значение по умолчанию — #.

Значение по умолчанию: #

QuoteEscapeCharacter -> (строка)

Один символ, используемый для экранирования символа кавычек внутри уже экранированного значения. Например, значение """ a , b """ интерпретируется как " a , b ".

RecordDelimiter -> (строка)

Один символ, используемый для разделения отдельных записей в вводе. Вместо значения по умолчанию вы можете указать произвольный разделитель.

FieldDelimiter -> (строка)

Один символ, используемый для разделения отдельных полей в записи. Вы можете указать произвольный разделитель.

QuoteCharacter -> (строка)

Один символ, используемый для экранирования, когда разделитель поля является частью значения. Например, если значение равно a, b, Amazon S3 заключает это значение поля в кавычки следующим образом: " a , b ".

Тип: Строка

Значение по умолчанию: "

Предки: CSV

AllowQuotedRecordDelimiter -> (булево)

Указывает, что значения поля CSV могут содержать заключенные в кавычки разделители записей, и такие записи должны быть разрешены. Значение по умолчанию — FALSE. Установка этого значения в TRUE может снизить производительность.

CompressionType -> (строка)

Указывает формат сжатия объекта. Допустимые значения: NONE, GZIP, BZIP2. Значение по умолчанию: NONE.

JSON -> (структура)

Указывает JSON в качестве входного формата сериализации объекта.

Type -> (строка)

Тип JSON. Допустимые значения: Document, Lines.

Parquet -> (структура)

Указывает Parquet в качестве входного формата сериализации объекта.

Сокращенная синтаксическая запись:

CSV={FileHeaderInfo=string,Comments=string,QuoteEscapeCharacter=string,RecordDelimiter=string,FieldDelimiter=string,QuoteCharacter=string,AllowQuotedRecordDelimiter=boolean},CompressionType=string,JSON={Type=string},Parquet={}

Синтаксис JSON:

{
  "CSV": {
    "FileHeaderInfo": "USE"|"IGNORE"|"NONE",
    "Comments": "string",
    "QuoteEscapeCharacter": "string",
    "RecordDelimiter": "string",
    "FieldDelimiter": "string",
    "QuoteCharacter": "string",
    "AllowQuotedRecordDelimiter": true|false
  },
  "CompressionType": "NONE"|"GZIP"|"BZIP2",
  "JSON": {
    "Type": "DOCUMENT"|"LINES"
  },
  "Parquet": {

  }
}

--output-serialization (структура)

Описание формата данных, который вы хотите, чтобы Amazon S3 возвращал в ответе.

CSV -> (структура)

Описание сериализации результатов Select в формате CSV.

QuoteFields -> (строка)

Указывает, следует ли использовать кавычки вокруг выходных полей.

  • ALWAYS : Всегда использовать кавычки для выходных полей.
  • ASNEEDED : Использовать кавычки для выходных полей при необходимости.

QuoteEscapeCharacter -> (строка)

Символ, используемый для экранирования символа кавычек внутри уже экранированного значения.

RecordDelimiter -> (строка)

Символ, используемый для разделения отдельных записей в выводе. Вместо значения по умолчанию вы можете указать произвольный разделитель.

FieldDelimiter -> (строка)

Значение, используемое для разделения отдельных полей в записи. Вы можете указать произвольный разделитель.

QuoteCharacter -> (строка)

Символ, используемый для экранирования, когда разделитель поля является частью значения. Например, если значение равно a, b, Amazon S3 заключает это значение поля в кавычки следующим образом: " a , b ".

JSON -> (структура)

Указывает JSON в качестве выходного формата сериализации запроса.

RecordDelimiter -> (строка)

Значение, используемое для разделения отдельных записей в выводе. Если значение не указано, Amazon S3 использует символ новой строки (’n’).

Сокращенная синтаксическая запись:

CSV={QuoteFields=string,QuoteEscapeCharacter=string,RecordDelimiter=string,FieldDelimiter=string,QuoteCharacter=string},JSON={RecordDelimiter=string}

Синтаксис JSON:

{
  "CSV": {
    "QuoteFields": "ALWAYS"|"ASNEEDED",
    "QuoteEscapeCharacter": "string",
    "RecordDelimiter": "string",
    "FieldDelimiter": "string",
    "QuoteCharacter": "string"
  },
  "JSON": {
    "RecordDelimiter": "string"
  }
}

--scan-range (структура)

Указывает диапазон байтов объекта, из которого нужно получить записи. Запись обрабатывается, когда ее первый байт содержится в диапазоне. Этот параметр необязателен, но при указании не должен быть пустым. См. RFC 2616, раздел 14.35.1, о том, как указать начало и конец диапазона.

ScanRange может использоваться следующим образом:
  • <scanrange><start>50</start><end>100</end></scanrange> - обработать только записи, начинающиеся между байтами 50 и 100 (включительно, считая с нуля)
  • <scanrange><start>50</start></scanrange> - обработать только записи, начинающиеся после байта 50
  • <scanrange><end>50</end></scanrange> - обработать только записи в последних 50 байтах файла.

Start -> (длинное целое число)

Указывает начало диапазона байтов. Этот параметр необязателен. Допустимые значения: неотрицательные целые числа. Значение по умолчанию — 0. Если указан только start, это означает сканирование с этой точки до конца файла. Например, <scanrange><start>50</start></scanrange> означает сканирование с байта 50 до конца файла.

End -> (длинное целое число)

Указывает конец диапазона байтов. Этот параметр необязателен. Допустимые значения: неотрицательные целые числа. Значение по умолчанию — на единицу меньше размера запрашиваемого объекта. Если указан только параметр End, это интерпретируется как сканирование последних N байтов файла. Например, <scanrange><end>50</end></scanrange> означает сканирование последних 50 байтов.

Сокращенная синтаксическая запись:

Start=long,End=long

Синтаксис JSON:

{
  "Start": long,
  "End": long
}

--expected-bucket-owner (строка)

Идентификатор учетной записи владельца ожидаемого ведра. Если предоставленный вами идентификатор учетной записи не соответствует фактическому владельцу ведра, запрос завершается с кодом состояния HTTP 403 Forbidden (доступ запрещен).

outfile (строка) Имя файла, в котором будут сохранены записи

Глобальные параметры

--debug (булево)

Включить отладку регистрации.

--endpoint-url (строка)

Переопределить URL по умолчанию команды заданным URL.

--no-verify-ssl (булево)

По умолчанию AWS CLI использует SSL при общении с AWS-сервисами. Для каждого SSL-соединения AWS CLI будет проверять сертификаты SSL. Этот параметр переопределяет стандартное поведение проверки SSL-сертификатов.

--no-paginate (булево)

Отключить автоматическую постраничную навигацию. Если автоматическая постраничная навигация отключена, AWS CLI выполнит только один вызов для первой страницы результатов.

--output (строка)

Стиль форматирования вывода команды.

  • json
  • text
  • table
  • yaml
  • yaml-stream

--query (строка)

Запрос JMESPath для использования при фильтрации данных ответа.

--profile (строка)

Использование определенного профиля из файла учетных данных.

--region (строка)

Используемый регион. Переопределяет настройки конфигурации/среды.

--version (строка)

Отобразить версию этого инструмента.

--color (строка)

Включить/выключить вывод в цвете.

  • on
  • off
  • auto

--no-sign-request (булево)

Не подписывать запросы. Учетные данные не будут загружены, если этот аргумент предоставлен.

--ca-bundle (строка)

Набор сертификатов CA для использования при проверке SSL-сертификатов. Переопределяет настройки конфигурации/среды.

--cli-read-timeout (целое число)

Максимальное время чтения сокета в секундах. Если значение установлено в 0, чтение сокета будет выполняться блокирующим образом без таймаута. Значение по умолчанию — 60 секунд.

--cli-connect-timeout (целое число)

Максимальное время подключения сокета в секундах. Если значение установлено в 0, подключение сокета будет выполняться блокирующим образом без таймаута. Значение по умолчанию — 60 секунд.

--cli-binary-format (строка)

Стиль форматирования, используемый для двоичных блоков. Формат по умолчанию — base64. Формат base64 ожидает, что двоичные блоки будут предоставлены в виде закодированной в base64 строки. Формат raw-in-base64-out сохраняет совместимость с поведением AWS CLI V1, и двоичные значения должны быть переданы буквально. При предоставлении содержимого из файла, соответствующего двоичному блоку, fileb:// всегда будет интерпретироваться как двоичное и будет использовать содержимое файла непосредственно, независимо от настроек cli-binary-format. При использовании file:// содержимое файла должно быть должным образом отформатировано для настроенного cli-binary-format.

  • base64
  • raw-in-base64-out

--no-cli-pager (булево)

Отключить пейджер cli для вывода.

--cli-auto-prompt (булево)

Автоматически запрашивать параметры ввода CLI.

--no-cli-auto-prompt (булево)

Отключить автоматическое запросов параметров ввода CLI.

Примеры

Примечание

Для использования следующих примеров необходимо установить и настроить AWS CLI. Дополнительную информацию см. в руководстве по началу работы в Руководстве пользователя AWS CLI.

Если не указано иное, все примеры используют правила цитирования, аналогичные Unix. Эти примеры потребуется адаптировать к правилам цитирования вашей оболочки. См. Использование кавычек со строками в Руководстве пользователя AWS CLI.

Для фильтрации содержимого объекта Amazon S3 на основе SQL-запроса

Следующий select-object-content пример фильтрует объект my-data-file.csv с помощью указанного SQL-запроса и отправляет вывод в файл.

aws s3api select-object-content \
    --bucket amzn-s3-demo-bucket \
    --key my-data-file.csv \
    --expression "select * from s3object limit 100" \
    --expression-type 'SQL' \
    --input-serialization '{"CSV": {}, "CompressionType": "NONE"}' \
    --output-serialization '{"CSV": {}}' "output.csv"

Эта команда не выводит ничего на экран.

Вывод

Эта команда не генерирует вывод. Содержимое выбранного объекта записывается в указанный файл outfile.

© Copyright 2025, Amazon Web Services. Created using Sphinx.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API