[英]jclouds IOExpection: Error writing request body to server
We are using jclouds
with Rackspace
and when uploading lots of files via cloudfile api
( multi threaded
) 我们在
Rackspace
上使用jclouds
,并通过cloudfile api
( multi threaded
)上传大量文件时
Once in while we are getting an exception on objectApi.put
line (see example code at bottom) 当我们在
objectApi.put
行上objectApi.put
异常时(请参阅底部的示例代码)
16-Jul-2015 11:58:00.811 SEVERE [threadsPool-1] org.jclouds.logging.jdk.JDKLogger.logError error after writing 8192/streaming bytes to https://*****/****.jpg
java.io.IOException: Error writing request body to server
at sun.net.www.protocol.http.HttpURLConnection$StreamingOutputStream.checkError(HttpURLConnection.java:3478)
at sun.net.www.protocol.http.HttpURLConnection$StreamingOutputStream.write(HttpURLConnection.java:3461)
at com.google.common.io.CountingOutputStream.write(CountingOutputStream.java:53)
at com.google.common.io.ByteStreams.copy(ByteStreams.java:74)
at org.jclouds.http.internal.JavaUrlHttpCommandExecutorService.writePayloadToConnection(JavaUrlHttpCommandExecutorService.java:297)
at org.jclouds.http.internal.JavaUrlHttpCommandExecutorService.convert(JavaUrlHttpCommandExecutorService.java:160)
at org.jclouds.http.internal.JavaUrlHttpCommandExecutorService.convert(JavaUrlHttpCommandExecutorService.java:64)
at org.jclouds.http.internal.BaseHttpCommandExecutorService.invoke(BaseHttpCommandExecutorService.java:91)
at org.jclouds.rest.internal.InvokeHttpMethod.invoke(InvokeHttpMethod.java:90)
at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:73)
at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:44)
at org.jclouds.reflect.FunctionalReflection$FunctionalInvocationHandler.handleInvocation(FunctionalReflection.java:117)
at com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:87)
at com.sun.proxy.$Proxy176.put(Unknown Source)
at
S3
S3
类似问题 ObjectApi objectApi = cloudFiles.getObjectApi(REGION, container);
ByteSource byteSource = Files.asByteSource(file);
Payload payload = Payloads.newByteSourcePayload(byteSource);
objectApi.put(hashedName, payload);
Any one has experience some behavior like that? 任何人都经历过这样的行为吗? maybe someone has workaround for that kind of issue?
也许有人可以解决此类问题?
Thanks 谢谢
Alon 阿龙
Networks are unreliable, so expect some exceptions when using cloud services, especially when dealing with many files. 网络不可靠,因此在使用云服务时(特别是在处理许多文件时)会出现一些例外情况。 Specifically for jclouds uploads, we have some example code here:
特别是对于jclouds上传,我们在这里有一些示例代码:
https://github.com/jclouds/jclouds-examples/tree/master/blobstore-uploader https://github.com/jclouds/jclouds-examples/tree/master/blobstore-uploader
Edit: I have also added a JIRA issue to make sure we add a test specifically for this situation in swift: 编辑:我还添加了一个JIRA问题,以确保我们迅速添加针对此情况的测试:
https://issues.apache.org/jira/browse/JCLOUDS-965 https://issues.apache.org/jira/browse/JCLOUDS-965
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.