Я создаю отдельный клиентский объект AmazonS3 и пытаюсь получить объект из aws в виде потока. Способ создания объекта приведен ниже:
public AmazonS3 getAmazonS3Client() {
if(null != awsS3Client) return awsS3Client;
return AmazonS3ClientBuilder.standard()
.withRegion(s3Region)
.withCredentials(new AWSStaticCredentialsProvider(new BasicAWSCredentials(s3AccessKey, s3SecretKey)))
.build();
}
Когда я внедряю код через некоторое время, я получаю сообщение об ошибке «Невозможно выполнить HTTP-запрос: нет свободного места в буфере (максимальное количество подключений достигнуто?)», Подробности приведены ниже:
Failed to get an input stream for an asset
com.amazonaws.SdkClientException: Unable to execute HTTP request: No buffer space available (maximum connections reached?): connect
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleRetryableException(AmazonHttpClient.java:1163)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1109)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:758)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:732)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:714)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:674)
at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:656)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:520)
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4705)
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4652)
at com.amazonaws.services.s3.AmazonS3Client.getObject(AmazonS3Client.java:1457)
Поскольку я использую один клиент AmazonS3, это является причиной ошибки? Нужно ли создавать awsS3Client каждый раз, когда мне нужен объект из s3?