1

( )を介して大量のファイルをアップロードする場合に使用jcloudsしていますRackspacecloudfile apimulti threaded

たまにオンラインで例外が発生し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

ここで見つけることができます

サンプルコード

ObjectApi objectApi = cloudFiles.getObjectApi(REGION, container);
ByteSource byteSource = Files.asByteSource(file);
Payload payload = Payloads.newByteSourcePayload(byteSource);
objectApi.put(hashedName, payload);

質問:

そのような行動を経験した人はいますか?多分誰かがその種の問題の回避策を持っていますか?

ありがとう

アロン

4

1 に答える 1

1

ネットワークは信頼できないため、クラウド サービスを使用する場合、特に多くのファイルを処理する場合は、いくつかの例外を想定してください。具体的には、jclouds のアップロード用に、いくつかのサンプル コードを以下に示します。

https://github.com/jclouds/jclouds-examples/tree/master/blobstore-uploader

編集: JIRAの問題も追加して、この状況に特化したテストを迅速に追加するようにしました:

https://issues.apache.org/jira/browse/JCLOUDS-965

于 2015-07-16T14:46:58.427 に答える