Java Aws sdk 2连接和异步调用
我正在尝试通过本地代理和使用JavaAWSDK2库的EC2实例异步写入S3 bucket 我能够创建同步客户端,但是ASYNC看起来完全不同 下面是我使用iam密钥和EC2实例在本地连接的代码: Region Region=Region.of(awsS3Config.getRegion()); if(goalsEngineConfig!=null&&ENVIRONMENT_LOCAL.equalsIgnoreCase(goalsEngineConfig.getEnv()) { AwsCredentials awsCredentials= 创建(awsS3Config.getIamKey(),awsS3Config.getIamSecretKey()) //创建Async不起作用,因此我需要帮助创建它 this.s3AsyncClient=s3AsyncClient.builder() .地区(地区) .asyncHttpConfiguration(ClientAsyncHttpConfiguration.builder() .httpClient(sdkHttpClient) .build()).credentialsProvider(StaticCredentialsProvider.create(awsCredentials)) .build(); } 否则//不是本地环境,请使用EC2实例身份验证 { this.s3AsyncClient=s3AsyncClient.builder() .地区(地区) .credentialsProvider(新InstanceProfileCredentialsProvider.create()) .build(); }Java Aws sdk 2连接和异步调用,java,amazon-s3,amazon-ec2,proxy,aws-sdk,Java,Amazon S3,Amazon Ec2,Proxy,Aws Sdk,我正在尝试通过本地代理和使用JavaAWSDK2库的EC2实例异步写入S3 bucket 我能够创建同步客户端,但是ASYNC看起来完全不同 下面是我使用iam密钥和EC2实例在本地连接的代码: Region Region=Region.of(awsS3Config.getRegion()); if(goalsEngineConfig!=null&&ENVIRONMENT_LOCAL.equalsIgnoreCase(goalsEngineConfig.getEnv()) { AwsCreden
欢迎提供任何帮助?那么,从我的理解来看,这里的确切问题是什么?您希望使用支持异步的AWS Java SDK实现Java SDK异步S3获取,但您不知道如何使用支持异步的AWS Java SDK连接到AWS S3?我想实现PUT(参见编辑的代码)抱歉,我认为我粘贴了正确的代码段和@MattG,这是正确的。我不确定如何使用支持异步的AWS Java SDK 2连接到AWS S3,尤其是在代理部分。Java SDK V2客户端可能不支持这种情况(目前)
String protocol = Protocol.HTTP.toString();
String host = "somproxy.foo";
int port = 8888;
String path = null;
String auth = null;
String fragment = null;
URI uri = new URI(protocol, auth, host, port, path, null, fragment);
ProxyConfiguration.Builder builder = ProxyConfiguration.builder().endpoint(uri);
ProxyConfiguration proxyConfiguration = builder.build();
ApacheSdkHttpClientFactory
apacheSdkHttpClientFactory =
ApacheSdkHttpClientFactory.builder().proxyConfiguration(proxyConfiguration).build();
this.s3Client = S3Client.builder()
.region(region)
.httpConfiguration(ClientHttpConfiguration.builder()
.httpClientFactory(apacheSdkHttpClientFactory)
.build())
.credentialsProvider(StaticCredentialsProvider.create(awsCredentials))
.build();
SdkAsyncHttpClientFactory sdkAsyncHttpClientFactory = null;
SdkAsyncHttpClient sdkHttpClient = null;