尝试PutObject请求时,AWS S3 Java SDK超时

时间:2017-02-19 16:08:04

标签: java amazon-s3 aws-java-sdk

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

0 个答案:

没有答案