我有一些代码试图将图像上传到s3存储桶。所有这些都在100-200kb左右。
然而,在上传几次后,我总是得到以下堆栈跟踪:
com.amazonaws.AmazonClientException:无法执行HTTP请求: 超时等待来自游泳池的连接 com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:713) 在 com.amazonaws.http.AmazonHttpClient.doExecute(AmazonHttpClient.java:453) 在 com.amazonaws.http.AmazonHttpClient.executeWithTimer(AmazonHttpClient.java:415) 在 com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:364) 在 com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3964) 在 com.amazonaws.services.s3.AmazonS3Client.putObject(AmazonS3Client.java:1538)
如果我在我的代码上执行GetObject,那么我只会在上传时遇到问题。
代码如下:
public PutObjectResult uploadImage(String key, InputStream inputStream, ObjectMetadata metadata) {
Optional<String> bucketName = propertyResolver.instance().value("s3.bucket.url");
String resourcePath = BASE_PATH + key;
PutObjectRequest request = new PutObjectRequest(bucketName.get(), resourcePath, inputStream, metadata);
PutObjectResult result;
try {
result = s3Client.putObject(request);
} catch (AmazonClientException amazonClientException) {
amazonClientException.printStackTrace();
}
return result;
}
我试图在线找到一个解决方案,但我找到的只是关于GetObject的问题而没有正确地使用响应。