我正在尝试使用分段上传AWS S3 java API执行文件上传(我使用的是SDK 1.8.1).我能够成功执行上传.
但是,间歇性地我不断得到这个例外.
2014年7月31日上午4:39:38 com.amazonaws.http.AmazonHttpClient executeHelper INFO:无法执行HTTP请求:连接重置java.net.SocketException:java.net.SocketInputStream.read上的连接重置(SocketInputStream.java:189 )在sun.security.ssl.InputRecord.read(readRecord.java:312)的sun.security.ssl.InputRecord.readFully(InputRecord.java:312)的java.net.SocketInputStream.read(SocketInputStream.java:121)处(InputRecord.java:350) at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:927)at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:884)at sun.security.ssl.AppInputStream.read(AppInputStream.java:102 )org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:166)org.apache.http.impl.io.SocketInputBuffer.fillBuffer(SocketInputBuffer.java:90)at org.apache.http. impl.io.AbstractSessionInputBuffer.readLine(AbstractSessionInputBuffer.java:281)at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponsePar)ser.java:92)org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:62)org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:254)at org .apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:289)org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:252)at org.apache.http.impl.conn.ManagedClientConnectionImpl .receiveResponseHeader(ManagedClientConnectionImpl.java:191)org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:300)at org.在com.amazonaws.http.protocol.SdkHttpRequestExecutor.doReceiveResponse(SdkHttpRequestExecutor.java:66). apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:127)位于org.apache.http.impl.client.DefaultRequestDirector的org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:717).执行(DefaultRequest Director.java:522)atg.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805)at com .amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:402)at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:245)at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3711) )在云上的com.amazonaws.services.s3.AmazonS3Client.uploadPart(AmazonS3Client.java:2809).< - filename - > .writeContent(< - filename - > .java:< - linenumber->)
在以下代码中
try {
_partETags.add(_s3.uploadPart(uploadPartReq).getPartETag());
} catch (AmazonClientException e) {
System.out.println("Amazon service error. Retrying...");
printException(e);
} catch (Exception e) {
printException(e);
throw new UserException("Received an exception while performing upload part");
}
Run Code Online (Sandbox Code Playgroud)
如果我看一下docuementation,它说uploadPart函数只会抛出两个类AmazonClientException和AmazonServiceException.
链接:http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/AmazonS3.html#uploadPart(com.amazonaws.services.s3.model.UploadPartRequest)
Run Code Online (Sandbox Code Playgroud)<documentation> …