com.amazonaws.SdkClientException:数据读取的长度与预期的

时间:2017-12-19 08:58:31

标签: java amazon-web-services java-ee amazon-s3 inputstream

在解析XML类型的输入流时获取异常。

com.amazonaws.SdkClientException: Data read has a different length than the expected: dataLength=75876; expectedLength=481292147; includeSkipped=true; in.getClass()=class com.amazonaws.services.s3.AmazonS3Client$2; markedSupported=false; marked=0; resetSinceLastMarked=false; markCount=0; resetCount=0
    at com.amazonaws.util.LengthCheckInputStream.checkLength(LengthCheckInputStream.java:151)
    at com.amazonaws.util.LengthCheckInputStream.read(LengthCheckInputStream.java:109)

有谁能告诉我为什么我得到这个例外?以及如何解决它。 这里我有S3Object,我从中获取InputStream(data.getObjectContent())。 InputStream包含我正在解析的xml数据。解析时我得到了这个例外。

1 个答案:

答案 0 :(得分:0)

我猜其他一方告诉你文件大小,这个文件大小不正确。因此,一个明显的答案是在尝试将文件流式传输到S3之前自己计算文件大小。即将文件大小设置为

file.length()

如果你发布你的代码,我可能会进一步提供帮助。