Skip to content

Commit

Permalink
aws crt client
Browse files Browse the repository at this point in the history
  • Loading branch information
sullis committed Jul 25, 2024
1 parent 8cb678c commit 1fdc6d0
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 14 deletions.
2 changes: 1 addition & 1 deletion settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ dependencyResolutionManagement {
}
create("aws") {
version("awssdk", "2.25.60")
library("netty", "software.amazon.awssdk", "netty-nio-client").versionRef("awssdk")
library("crtClient", "software.amazon.awssdk", "aws-crt-client").versionRef("awssdk")
library("s3", "software.amazon.awssdk", "s3").versionRef("awssdk")

}
Expand Down
7 changes: 1 addition & 6 deletions spring-funk-aws/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,10 @@ dependencies {
api(aws.s3) {
exclude(group = "software.amazon.awssdk", module = "apache-client")
}
implementation(aws.netty)
implementation(aws.crtClient)
implementation(libs.slf4j)
implementation(libs.oshai)
compileOnly("io.micrometer:micrometer-core:1.13.0")
implementation("io.netty:netty-tcnative-boringssl-static:2.0.62.Final")
implementation("io.netty:netty-tcnative-boringssl-static:2.0.62.Final:linux-aarch_64")
implementation("io.netty:netty-tcnative-boringssl-static:2.0.62.Final:osx-aarch_64")
implementation("io.netty:netty-tcnative-boringssl-static:2.0.62.Final:linux-x86_64")
implementation("io.netty:netty-tcnative-boringssl-static:2.0.62.Final:osx-x86_64")

testImplementation(project(":spring-funk-test"))
testImplementation(libs.oshai)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,24 +1,21 @@
package com.github.wakingrufus.funk.aws.s3

import io.netty.handler.ssl.SslProvider
import software.amazon.awssdk.auth.credentials.AwsBasicCredentials
import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider
import software.amazon.awssdk.http.nio.netty.NettyNioAsyncHttpClient
import software.amazon.awssdk.http.crt.AwsCrtAsyncHttpClient
import software.amazon.awssdk.regions.Region
import software.amazon.awssdk.services.s3.S3AsyncClient
import software.amazon.awssdk.services.s3.S3AsyncClientBuilder

internal fun newClientBuilder(clientConfig: S3ClientConfigurationProperties): S3AsyncClientBuilder {
val awsBuilder = S3AsyncClient.builder()
val builder: NettyNioAsyncHttpClient.Builder =
NettyNioAsyncHttpClient.builder()
.sslProvider(SslProvider.OPENSSL)
val builder = AwsCrtAsyncHttpClient.builder()
.maxConcurrency(clientConfig.maxConcurrency)
clientConfig.readWriteTimeout?.also {
builder.readTimeout(it).writeTimeout(it)
// TODO fixme
}
clientConfig.connectionTimeout?.also {
builder.connectionAcquisitionTimeout(it).connectionTimeout(it)
builder.connectionTimeout(it)
}
awsBuilder.httpClientBuilder(builder)
clientConfig.region?.also {
Expand Down

0 comments on commit 1fdc6d0

Please sign in to comment.