aws / aws/aws-sdk-java-v2

Missing features in `S3CrtAsyncClientBuilder` compared to `S3AsyncClientBuilder`

Open
#6,213 0 comments 0 reactions 0 assignees View on GitHub
feature-request p2
Dominant language
Java
Stars
2.6k
Forks
1k
Avg merge
2d 9h
Merged PRs (30d)
51

Description

### Describe the feature

We have noticed a few features that CRT async client builder `S3CrtAsyncClientBuilder` does not support currently as compared to `S3AsyncClientBuilder`. We wanted to understand the timeline for when these will be available or if there is a workaround for these missing features meanwhile.

1. Support for [dualstackEnabled](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/awscore/client/builder/AwsClientBuilder.html#dualstackEnabled(java.lang.Boolean)).
2. Support for [useArnRegionEnabled](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3Configuration.html#useArnRegionEnabled()). **_[ This is a bit crucial one for us ]_**
3. Support for [overrideConfiguration](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/core/client/builder/SdkClientBuilder.html#overrideConfiguration(software.amazon.awssdk.core.client.config.ClientOverrideConfiguration)) with [ClientOverrideConfiguration](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/core/client/config/ClientOverrideConfiguration.html). Especially we are interested in [SIGNER](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/core/client/config/SdkAdvancedClientOption.html#SIGNER), [USER_AGENT_PREFIX](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/core/client/config/SdkAdvancedClientOption.html#USER_AGENT_PREFIX), [retryPolicy](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/core/client/config/ClientOverrideConfiguration.Builder.html#retryPolicy(java.util.function.Consumer)) configurations.
4. Does not support adding access grants plugins as [addPlugin](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/core/client/builder/SdkClientBuilder.html#addPlugin(software.amazon.awssdk.core.SdkPlugin)) is missing.
5. HTTP Client property configurations such as `SOCKET_TIMEOUT_MS, CONNECTION_ACQUISITION_TIMEOUT_MS, CONNECTION_MAX_IDLE_TIME_MS, CONNECTION_TIME_TO_LIVE_MS, TCP_KEEP_ALIVE_ENABLED, USE_IDLE_CONNECTION_REAPER_ENABLED, PROXY_ENDPOINT`. All of these are available in[ default async client.](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/nio/netty/NettyNioAsyncHttpClient.Builder.html)

### Use Case

This is a part of our default ON integration of the library [analytics-accelerator-s3](https://github.com/awslabs/analytics-accelerator-s3) into [Iceberg](https://github.com/apache/iceberg). We have CRT [enabled by default](https://github.com/apache/iceberg/blob/main/aws/src/main/java/org/apache/iceberg/aws/s3/S3FileIOProperties.java#L103) so we want to make sure the CRT async client supports all the features that sync client supports. The default async client already supports almost all the features in sync clients. The work being done can be found in this PR https://github.com/apache/iceberg/pull/13387

### Proposed Solution

_No response_

### Other Information

_No response_

### Acknowledgements

- [ ] I may be able to implement this feature request
- [ ] This feature might incur a breaking change

### AWS Java SDK version used

2.31.63

### JDK version used

17

### Operating System and version

MacOS

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.