Spring integration 使用spring集成aws S3MessageHandler上载文件时出现AmazonClientException

Spring integration 使用spring集成aws S3MessageHandler上载文件时出现AmazonClientException,spring-integration,Spring Integration,我已经从spring integration aws配置了一个S3MessageHandler,将文件对象上传到S3 上载失败,跟踪如下: 原因:com.amazonaws.AmazonClientException:数据读取的长度与预期的长度不同:dataLength=0;预期长度=26;includeSkipped=false;in.getClass()=类com.amazonaws.internal.ResettableInputStream;markedSupported=true;标记

我已经从spring integration aws配置了一个
S3MessageHandler
,将
文件
对象上传到S3

上载失败,跟踪如下:

原因:com.amazonaws.AmazonClientException:数据读取的长度与预期的长度不同:dataLength=0;预期长度=26;includeSkipped=false;in.getClass()=类com.amazonaws.internal.ResettableInputStream;markedSupported=true;标记=0;resetsincellastmarked=false;markCount=1;重置计数=0 位于com.amazonaws.util.LengthCheckInputStream.checkLength(LengthCheckInputStream.java:152)

查看
S3MessageHandler
的源代码,我不确定如何成功上传
文件。
s3MessageHandler.upload()
方法在跟踪其执行时执行以下操作:

  • 为文件创建FileInputStream
  • 使用输入流计算文件内容的MD5哈希
  • 如果可以重置流,则重置流(对于FileInputStream不可能)
  • 使用输入流设置S3传输。这会失败,因为流处于EOF,因此可转移字节数与内容长度标头中的字节数不匹配

我是否遗漏了什么,或者这是消息处理程序中的错误?

是;这是一只虫子;请打开一个和/或一个

对于
FileInputStream
应该创建一个新的,对于
InputStream
有效负载,如果MD5使用流,我们需要断言
markSupported()
为true

在“签署”CLA后考虑

编辑


我打开了。是的;这是一只虫子;请打开一个和/或一个

对于
FileInputStream
应该创建一个新的,对于
InputStream
有效负载,如果MD5使用流,我们需要断言
markSupported()
为true

在“签署”CLA后考虑

编辑


我打开了。

哈哈……我打开了226。将作为副本关闭它。在春季,aws回购与您的JIRA问题挂钩。哈哈…我打开了226。将作为副本关闭它。在春季集成中,aws回购现在与您的JIRA问题相关联。