在Mule中的系统之间传输压缩/解压缩+编码/解码的文件

时间:2013-04-19 05:43:45

标签: compression base64 sftp mule

我正在使用mule sftp端点在系统之间传输文件。涉及的系统安装并运行了ftp / sftp服务器。但我想要实现的是使用Mule中的变换器传输压缩/未压缩+编码/解码文件。到目前为止我所拥有的内容如下,它不起作用:

<flow name="flow1">
    <sftp:inbound-endpoint address="sftp://username:password@ip_address:22/path/to/dir1"
        responseTimeout="1000" />
    <string-to-byte-array-transformer doc:name="String to Byte Array"/>
    <base64-encoder-transformer /> 
    <gzip-compress-transformer/>
    <logger level="INFO" message="#[message.payloadAs(java.lang.String)]" />
    <file:outbound-endpoint path="/path/to/Output" />
</flow>

<flow name="flow2">
    <file:inbound-endpoint path="/path/to/Output" />
    <gzip-compress-transformer/>
    <base64-encoder-transformer /> 
    <string-to-byte-array-transformer doc:name="String to Byte Array"/>
    <logger level="INFO" message="#[message.payloadAs(java.lang.String)]" />
    <sftp:outbound-endpoint address="sftp://username:password@ip_address:22/path/to
    /dir2" responseTimeout="1000" />
</flow>

1 个答案:

答案 0 :(得分:2)

我得到了它的工作。我的解决方案是将编码添加到编码/解码标签,如下所示:

<base64-encoder-transformer encoding="utf8"/> 
...
<base64-decoder-transformer encoding="utf8"/> 

还使上面的编码标签在以下标记之前声明:

<string-to-byte-array-transformer doc:name="String to Byte Array"/>