В весеннем интеграционном приложении aws файлы направляются из исходной папки в целевую корзину S3 с помощью s3-outbound-gateway.Хотел бы закодировать файл UTF-8/16, используя преобразователь file-to-string и загрузить в целевое ведро.Но выходной файл, помещенный в целевое ведро, не является кодировкой, и приложение также не выдает ошибку.
Есть ли что-то упущенное здесь и какой-либо другой способ добиться этого?
<file:file-to-string-transformer input-channel="fileswithoutencoding" output-channel="filesOutS3Transformer" charset="UTF-8"/>
<!-- added this line -->
<integration:transformer input-channel="filesOutS3Transformer" output-channel="filesS3GateWay" expression="payload.bytes" />
<int-aws:s3-outbound-gateway id="s3File"
request-channel="filesS3GateWay"
reply-channel="filesS3ChainChannel"
transfer-manager="transferManager"
bucket-expression = "headers.TARGET_PATH"
key-expression="headers.file_name"
command="UPLOAD">
<int-aws:request-handler-advice-chain>
<ref bean="retryAdvice" />
</int-aws:request-handler-advice-chain>
</int-aws:s3-outbound-gateway>
маршрутизация к локальному файлу: файл кодируется в формате UTF-8 только с использованием преобразователя файла в строку, хотя кодировка 8/16/32.
<integration:chain id="filesOutChain" input-channel="filesOut">
<integration:transformer expression="headers.FILE"/>
<file:file-to-string-transformer charset="UTF-16"/>
<!-- though bytes conversion is not required,just added for testing purpose -->
<integration:transformer expression="payload.bytes"/>
<file:outbound-gateway id="fileMover"
auto-create-directory="true"
directory-expression="headers.TARGET_PATH"
mode="REPLACE">
<file:request-handler-advice-chain>
<ref bean="retryAdvice" />
</file:request-handler-advice-chain>
</file:outbound-gateway>
<integration:gateway request-channel="filesOutChainChannel" error-channel="errorChannel"/>
</integration:chain>