import { EndpointParameterInstructions } from "@aws-sdk/middleware-endpoint"; import { Command as $Command } from "@aws-sdk/smithy-client"; import { Handler, HttpHandlerOptions as __HttpHandlerOptions, MetadataBearer as __MetadataBearer, MiddlewareStack } from "@aws-sdk/types"; import { SelectObjectContentOutput, SelectObjectContentRequest } from "../models/models_1"; import { S3ClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../S3Client"; /** * @public * * The input for {@link SelectObjectContentCommand}. */ export interface SelectObjectContentCommandInput extends SelectObjectContentRequest { } /** * @public * * The output of {@link SelectObjectContentCommand}. */ export interface SelectObjectContentCommandOutput extends SelectObjectContentOutput, __MetadataBearer { } /** * @public *
This action filters the contents of an Amazon S3 object based on a simple structured query * language (SQL) statement. In the request, along with the SQL expression, you must also * specify a data serialization format (JSON, CSV, or Apache Parquet) of the object. Amazon S3 uses * this format to parse object data into records, and returns only records that match the * specified SQL expression. You must also specify the data serialization format for the * response.
*This action is not supported by Amazon S3 on Outposts.
*For more information about Amazon S3 Select, * see Selecting Content from * Objects and SELECT * Command in the Amazon S3 User Guide.
*For more information about using SQL with Amazon S3 Select, see SQL Reference for Amazon S3 Select * and S3 Glacier Select in the Amazon S3 User Guide.
* ** Permissions *
*You must have s3:GetObject permission for this operation. Amazon S3 Select does
* not support anonymous access. For more information about permissions, see Specifying Permissions in a Policy
* in the Amazon S3 User Guide.
* Object Data Formats *
*You can use Amazon S3 Select to query objects that have the following format * properties:
** CSV, JSON, and Parquet - Objects must be in CSV, JSON, or * Parquet format.
** UTF-8 - UTF-8 is the only encoding type Amazon S3 Select * supports.
** GZIP or BZIP2 - CSV and JSON files can be compressed using * GZIP or BZIP2. GZIP and BZIP2 are the only compression formats that Amazon S3 Select * supports for CSV and JSON files. Amazon S3 Select supports columnar compression for * Parquet using GZIP or Snappy. Amazon S3 Select does not support whole-object compression * for Parquet objects.
** Server-side encryption - Amazon S3 Select supports querying * objects that are protected with server-side encryption.
*For objects that are encrypted with customer-provided encryption keys (SSE-C), you * must use HTTPS, and you must use the headers that are documented in the GetObject. For more information about SSE-C, see Server-Side Encryption * (Using Customer-Provided Encryption Keys) in the * Amazon S3 User Guide.
*For objects that are encrypted with Amazon S3 managed encryption keys (SSE-S3) and * Amazon Web Services KMS keys (SSE-KMS), * server-side encryption is handled transparently, so you don't need to specify * anything. For more information about server-side encryption, including SSE-S3 and * SSE-KMS, see Protecting Data Using * Server-Side Encryption in the Amazon S3 User Guide.
** Working with the Response Body *
*Given the response size is unknown, Amazon S3 Select streams the response as a series of
* messages and includes a Transfer-Encoding header with chunked as
* its value in the response. For more information, see Appendix: SelectObjectContent
* Response.
* GetObject Support *
*The SelectObjectContent action does not support the following
* GetObject functionality. For more information, see GetObject.
* Range: Although you can specify a scan range for an Amazon S3 Select request
* (see SelectObjectContentRequest - ScanRange in the request parameters),
* you cannot specify the range of bytes of an object to return.
GLACIER, DEEP_ARCHIVE and REDUCED_REDUNDANCY storage classes: You cannot specify
* the GLACIER, DEEP_ARCHIVE, or REDUCED_REDUNDANCY storage classes. For
* more information, about storage classes see Storage Classes
* in the Amazon S3 User Guide.
* Special Errors *
*For a list of special errors for this operation, see List of * SELECT Object Content Error Codes *
** Related Resources *
** GetObject *
*