2017-04-26 160 views
0

我有一個將文件上傳到S3存儲桶的彈簧啓動應用程序。 每當應用程序嘗試上載文件時,我都會收到以下錯誤。堆棧跟蹤是一個巨大的。所以我只提供它的一部分。無法使用aws-java-sdk將文件上傳到S3存儲桶

java.lang.IllegalStateException: Socket not created by this factory 
at org.apache.http.util.Asserts.check(Asserts.java:34) ~[httpcore-4.4.6.jar:4.4.6] 
at org.apache.http.conn.ssl.SSLSocketFactory.isSecure(SSLSocketFactory.java:435) ~[httpclient-4.5.3.jar:4.5.3] 
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:186) ~[httpclient-4.5.3.jar:4.5.3] 

我使用以下依賴

<dependency> 
     <groupId>com.amazonaws</groupId> 
     <artifactId>aws-java-sdk</artifactId> 
     <version>1.11.123</version> 
    </dependency> 

我甚至有

<parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.5.1.RELEASE</version> 
    </parent> 
    <dependency> 
     <groupId>org.springframework.cloud</groupId> 
     <artifactId>spring-cloud-starter-aws</artifactId> 
    </dependency> 
    <!--<dependency> 
     <groupId>org.springframework.cloud</groupId> 
     <artifactId>spring-cloud-aws-context</artifactId> 
    </dependency> 

但門檻越來越

我一直在使用這兩種TransferManager試圖同類型的錯誤嘗試以及來自AmazonS3的putObject()方法,但具有相同的錯誤。

該應用程序幾天前運行良好,錯誤最近纔開始出現。

+0

更好,如果你提供整個堆棧跟蹤和實現的固有部分。 – freedev

回答

0

發佈更多堆棧跟蹤以便我們可以看到SDK生命週期中生成異常的哪一點(上面的堆棧跟蹤僅顯示apache類)會很有用。你還可以展示你如何配置S3客戶端?

您是否在配置自定義SocketFactory?有問題的支票正在查看SocketFactory創建的Socket是否實際上是SSLSocket,如果不是 - 那就是它的炸彈 - 您可以從Apache代碼here中看到。

1

我對SDK的v1.10.12同樣的問題,我切換到v1.11.136和解決我的問題,添加下面的代碼,你的POM文件

<!-- AWS S3 Dependencies--> 
    <dependency> 
     <groupId>com.amazonaws</groupId> 
     <artifactId>aws-java-sdk</artifactId> 
     <version>1.11.136</version> 
    </dependency> 
<!-- End of AWS S3 Dependencies --> 
相關問題