使用COS 的Java SDK 中的高级上传接口上传文件时,某些分片会报错。
使用的SDK为:
<dependency>
<groupId>com.qcloud</groupId>
<artifactId>cos_api</artifactId>
<version>5.6.72</version>
</dependency>
异常堆栈:
05-07 02:07:17.133 |-INFO o.a.http.impl.execchain.RetryExec:97 - I/O exception (java.net.SocketException) caught when processing request to {s}->https://xxxxxx-xxxxxxxx.cos.ap-guangzhou.myqcloud.com:443: Broken pipe (Write failed)
05-07 02:07:17.135 |-INFO c.q.cos.http.DefaultCosHttpClient:493 - failed to execute http request, due to client exception, httpRequest: endpoint: xxxxxx-xxxxxxxx.cos.ap-guangzhou.myqcloud.com, resourcepath: /20220507/IMAGE_FILE/ca
rd-image-2022-05-07-02-00-01.tar.gz, httpMethod: PUT, headers { Authorization : q-sign-algorithm=sha1&q-ak=AKIDLWR5TaQzIK7dvykFQQBgw2uXu3wZw5zd&q-sign-time=1651860060;1651863660&q-key-time=1651860060;1651863660&q-header-list=content-le
ngth;host&q-url-param-list=partnumber;uploadid&q-signature=acea996d919f7f92b1a8cafc2989a6de05a47cca, User-Agent : cos-java-sdk-v5.6.72/Linux/jdk-1.8.0_202/Java HotSpot(TM) 64-Bit Server VM, Host : xxxxxx-xxxxxxxx.cos.ap-guangzhou.m
yqcloud.com, Content-Length : 10485760, }, params: { uploadId : 165186005907a9665eeda63d40fba60d010bea23e4edeed7fcb57c0039fa376dd99f3a0b97, partNumber : 3, }, retryIdx:0, maxErrorRetry:5
com.qcloud.cos.exception.CosClientException: null
at com.qcloud.cos.utils.ExceptionUtils.createClientException(ExceptionUtils.java:47)
at com.qcloud.cos.http.DefaultCosHttpClient.executeOneRequest(DefaultCosHttpClient.java:416)
at com.qcloud.cos.http.DefaultCosHttpClient.exeute(DefaultCosHttpClient.java:475)
at com.qcloud.cos.COSClient.invoke(COSClient.java:583)
at com.qcloud.cos.COSClient.doUploadPart(COSClient.java:1598)
at com.qcloud.cos.COSClient.uploadPart(COSClient.java:1585)
at com.qcloud.cos.transfer.UploadPartCallable.call(UploadPartCallable.java:37)
at com.qcloud.cos.transfer.UploadPartCallable.call(UploadPartCallable.java:27)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.http.client.ClientProtocolException: null
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:187)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56)
at com.qcloud.cos.http.DefaultCosHttpClient.executeOneRequest(DefaultCosHttpClient.java:413)
... 10 common frames omitted
Caused by: org.apache.http.client.NonRepeatableRequestException: Cannot retry request with a non-repeatable request entity
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:108)
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
... 13 common frames omitted
Caused by: java.net.SocketException: Broken pipe (Write failed)
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:111)
at java.net.SocketOutputStream.write(SocketOutputStream.java:155)
at sun.security.ssl.OutputRecord.writeBuffer(OutputRecord.java:431)
at sun.security.ssl.OutputRecord.write(OutputRecord.java:417)
at sun.security.ssl.SSLSocketImpl.writeRecordInternal(SSLSocketImpl.java:879)
at sun.security.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:850)
at sun.security.ssl.AppOutputStream.write(AppOutputStream.java:123)
at org.apache.http.impl.io.SessionOutputBufferImpl.streamWrite(SessionOutputBufferImpl.java:124)
at org.apache.http.impl.io.SessionOutputBufferImpl.flushBuffer(SessionOutputBufferImpl.java:136)
at org.apache.http.impl.io.SessionOutputBufferImpl.write(SessionOutputBufferImpl.java:167)
at org.apache.http.impl.io.ContentLengthOutputStream.write(ContentLengthOutputStream.java:113)
at org.apache.http.entity.InputStreamEntity.writeTo(InputStreamEntity.java:144)
at org.apache.http.impl.execchain.RequestEntityProxy.writeTo(RequestEntityProxy.java:121)
at org.apache.http.impl.DefaultBHttpClientConnection.sendRequestEntity(DefaultBHttpClientConnection.java:156)
at org.apache.http.impl.conn.CPoolProxy.sendRequestEntity(CPoolProxy.java:152)
at org.apache.http.protocol.HttpRequestExecutor.doSendRequest(HttpRequestExecutor.java:238)
at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:123)
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:272)
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186)
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)
... 15 common frames omitted
相似问题