Как запросить s3 с помощью select

У меня есть следующие настройки в gradle

         implementation(platform("software.amazon.awssdk:bom:2.18.25"))
    implementation("software.amazon.awssdk:s3")
    implementation("software.amazon.awssdk:url-connection-client")

мой код выглядит следующим образом:

      S3Client client = S3Client.builder()
        .region(Region.of("eu-west-1"))
        .credentialsProvider(StaticCredentialsProvider.create(AwsBasicCredentials.create("xxxxxxxx", "xxxxxxx")))
        .httpClient(UrlConnectionHttpClient.builder().buildWithDefaults(
                AttributeMap.builder().put(TRUST_ALL_CERTIFICATES, Boolean.TRUE).build()))
        .build();

И я пытаюсь сделать запрос запроса

      SelectObjectContentRequest request = SelectObjectContentRequest.builder()
.bucket(bucket)
.key(key)
.expression(query)
.expressionType(ExpressionType.SQL)
        .build();

вот где я застрял, так как я не уверен, какой клиент s3 я должен использовать. Я использую вышеуказанный клиент - S3Client.builder. Но у него нет метода, который принимает SelectObjectContentRequest в качестве объекта запроса.

Нужно ли мне менять клиента на клиент AmazonS3 AmazonS3ClientBuilder?? Я использую v2 SDK.

1 ответ

пожалуйста, посмотрите https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3AsyncClient.html

      default CompletableFuture<Void>
selectObjectContent(Consumer<SelectObjectContentRequest.Builder> selectObjectContentRequest, SelectObjectContentResponseHandler asyncResponseHandler)

Это действие фильтрует содержимое объекта Amazon S3 на основе простого оператора структурированного языка запросов (SQL). CompletableFuture по умолчанию

      selectObjectContent(SelectObjectContentRequest selectObjectContentRequest, SelectObjectContentResponseHandler asyncResponseHandler)

Это действие фильтрует содержимое объекта Amazon S3 на основе простого оператора структурированного языка запросов (SQL).

Извлечение определенных полей из документа S3

Другие вопросы по тегам