amazon-web-services - SdkClientException : Unable to execute HTTP request: Connection reset

标签 amazon-web-services amazon-s3

我正在尝试将文件上传到 AWS s3 存储桶。我不断收到此异常“SdkClientException:无法执行 HTTP 请求:连接重置”。

我正在尝试通过输入流上传

AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
                .withRegion(Regions.US_EAST_2)
                .withCredentials(new AWSStaticCredentialsProvider(cred))
                .build();
        try {

            ObjectMetadata metadata = new ObjectMetadata();
            metadata.setContentLength(bytesArray.length);
            metadata.setContentType("text/csv");
            s3Client.putObject(new PutObjectRequest(appConfig.getBucketName(), fileName, inStream, metadata).withCannedAcl(CannedAccessControlList.PublicRead));
        }
    ----

以下是详细的异常(exception)情况。可能是什么原因?我的 S3 存储桶具有具有 S3 完全访问策略的 IAM 用户。此问题是否与网络或任何其他设置有关?
com.amazonaws.SdkClientException: Unable to execute HTTP request: Connection reset
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleRetryableException(AmazonHttpClient.java:1136)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1082)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:745)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:719)
-------
Caused by: java.net.SocketException: Connection reset
    at java.net.SocketInputStream.read(SocketInputStream.java:209)
    at java.net.SocketInputStream.read(SocketInputStream.java:141)
    at sun.security.ssl.InputRecord.readFully(InputRecord.java:465)
    at sun.security.ssl.InputRecord.read(InputRecord.java:503)
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387)
    at org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:396)
    at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:355)
    at com.amazonaws.http.conn.ssl.SdkTLSSocketFactory.connectSocket(SdkTLSSocketFactory.java:142)
    at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:142

最佳答案

我发现它是由于防火墙而发生的。如果您在 DEBUG 中设置 logging.level.com.amazonaws 那么它将显示 SSL 握手失败。

关于amazon-web-services - SdkClientException : Unable to execute HTTP request: Connection reset,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52434691/

相关文章:

amazon-web-services - AWS Glue - CRON 计划触发器

powershell - 如何在用户数据中获取 AWS 实例标签?

amazon-web-services - 为什么我的 [] 没有压平我的 jmespath 数组

amazon-web-services - 从 S3 调用对象时出现 403

amazon-web-services - 如何关系化包含数组的 JSON

amazon-s3 - 实时流量批量上传至S3

ruby-on-rails - rails 、回形针和 S3。避免保存原始图像?

amazon-web-services - 如何将 CloudWatch 警报配置为每 X 分钟评估一次

amazon-web-services - Terraform:如何从 VPC id 获取 VPC CIDR?

amazon-web-services - 如何解决AWS微服务的Rate Exceed错误?