如何压缩/解压缩Mule中的有效负载并获取原始有效负载

时间:2014-09-10 16:54:29

标签: mule mule-studio

我正在使用Mule Gzip压缩器和解压缩器进行某种POC。我的Mule流程正在跟随

<flow name="GZipCompress" doc:name="GZipFlow1">
  <file:inbound-endpoint path="E:\backup\test" responseTimeout="10000" doc:name="File">
    <file:filename-regex-filter pattern="anirban.doc" caseSensitive="false"/>
   </file:inbound-endpoint>

 <string-to-byte-array-transformer doc:name="String to Byte Array"/>
 <gzip-compress-transformer/>
  <file:outbound-endpoint path="E:\backup\test\ss" responseTimeout="10000" doc:name="File"/>
 </flow>



 <flow name="GZipUnCompress" doc:name="GZipFlow2">
    <file:inbound-endpoint path="E:\backup\test\ss" responseTimeout="10000" doc:name="File">
         <file:filename-regex-filter pattern="anirban.doc" caseSensitive="false"/>
   </file:inbound-endpoint>
   <gzip-uncompress-transformer />
  <byte-array-to-string-transformer />
   <file:outbound-endpoint path="E:\backup\test\ss\New folder" responseTimeout="10000" doc:name="File"/>
</flow>
</mule>

现在的问题是我有一个文件 anirban.doc ,它在压缩之前大约是 80.0 KB ..当我把文件放在压缩文件夹中时,文件入站GZipCompress流程将其拾取并压缩它。压缩后文件大小达到 20 KB ,这很好..现在当我尝试使用 GZipUnCompress 流程解压缩文件时,我将文件返回到文件出站端点 GZipUnCompress 流的输出文件夹中。这次所谓的解压缩文件大小为 96.0 KB ..当我尝试打开文件我得到二进制格式..所以我的问题是如何将未压缩文件恢复为原始文件大小相同,我可以打开它并读取它而不是二进制形式但是作为相同的原始内容..这是我正在压缩和解压缩文件/有效负载的正确方法..

1 个答案:

答案 0 :(得分:0)

如果我删除string-to-byte-array-transformer(这是无用的,甚至是反效果:尽可能保持字节数),那么GZipCompress完全正常工作:它在输出目录中创建一个有效的gzip压缩文件。