Похоже, что нет хорошего источника о том, как это сделать, вот два места, где я нашел информацию:
Первая ссылка . Это выглядит как самая последняя версия. Однако я не могу найти software.amazon.awssdk.http.apache.ApacheHttpClient
в моем проекте, даже когда у меня есть зависимость.
<groupId>software.amazon.awssdk</groupId>
<artifactId>aws-sdk-java</artifactId>
<version>2.3.2</version>
</dependency>
<dependency>
<artifactId>aws-http-client-apache</artifactId>
<groupId>software.amazon.awssdk</groupId>
<version>2.0.0-preview-1</version>
</dependency>
вторая ссылка выглядит как устаревшая версия о том, как настраивать клиенты. Следующий код в примере выглядит недействительным:
DynamoDBClient client =
DynamoDBClient.builder()
.httpConfiguration(ClientHttpConfiguration.builder()
.httpClientFactory(apacheClientFactory)
.build())
.build();
ClientHttpConfiguration
Недоступно, а метод httpConfiguration недоступен на клиентах.
Попытка взломать что-то вместе дает мне следующий код:
ProxyConfiguration proxyConfiguration = ProxyConfiguration.builder().endpoint(URI.create("host:port")).username("usr").password("pwd").build();
SdkHttpClient apacheClientFactory =
ApacheSdkHttpClientFactory.builder()
.socketTimeout(Duration.ofSeconds(10))
.connectionTimeout(Duration.ofMillis(750))
.proxyConfiguration(proxyConfiguration).build().createHttpClient();
this.s3client = S3Client.builder().httpClient(apacheClientFactory).build();
Это компилируется, но я получаю множество java.lang.ClassNotFoundException: software.amazon.awssdk.http.ExecutableHttpRequest
исключений, которые я не понимаю, откуда они берутся и как их исправить.
Так что мой вопрос в том, как правильно настроить прокси для
2.3.2
версия AWS Java SDK v2 и почему моя реализация не
рабочий?
Обновление
Когда я добавляю следующую зависимость, я получаю еще одну ошибку:
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>apache-client</artifactId>
<version>2.3.2</version>
</dependency>
Ошибка:
Caused by: java.lang.ClassNotFoundException: software.amazon.awssdk.http.SdkHttpClient$Builder