有一个Spring Boot应用程序,我试图在其中使用单个S3出站适配器将文件放入多个S3存储桶。
想知道是否有可能使用spring-integration-aws本身(不使用aws -sdk)使用单个出站适配器将文件放在多个存储桶中
任何建议都会有所帮助。
S3:出站适配器:
<int-aws:s3-outbound-channel-adapter id="filesS3Mover"
channel="filesS3MoverChannel"
transfer-manager="transferManager"
bucket="${aws.s3.target.bucket}"
key-expression="headers.targetsystem-folder/headers.file_name"
command="UPLOAD">
</int-aws:s3-outbound-channel-adapter>
答案 0 :(得分:1)
否,这种通道适配器无法一次发送到多个存储桶。 这不是它的责任。
您可以拥有一个:
-14 < 14
尽管如此,要在运行时根据一条消息确定它,并在 <xsd:attribute name="bucket-expression">
<xsd:annotation>
<xsd:documentation>
A SpEL expression to evaluate S3 bucket at runtime against request message.
Mutually exclusive with 'bucket'.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
前面有一个循环,以在每次迭代中修改一些消息头并将其全部一次又一次地发送到同一通道。