我正在使用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 ..当我尝试打开文件我得到二进制格式..所以我的问题是如何将未压缩文件恢复为原始文件大小相同,我可以打开它并读取它而不是二进制形式但是作为相同的原始内容..这是我正在压缩和解压缩文件/有效负载的正确方法..
答案 0 :(得分:0)
如果我删除string-to-byte-array-transformer
(这是无用的,甚至是反效果:尽可能保持字节数),那么GZipCompress
完全正常工作:它在输出目录中创建一个有效的gzip压缩文件。