我有一些代码尝试将图像上传到 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 的问题并且没有正确使用响应。