我有一个代理,它接受带有Base64编码文件的XML文件。例如,XML看起来像:
<message>
<content>Hello World</content>
<attachements>
<attachement>*Base64 code here*</attachement>
<attachement>*Base64 code here*</attachement>
<attachement>*Base64 code here*</attachement>
</attachements>
</message>
我的问题: 我喜欢将解码后的文件保存到运行ESB的服务器的文件系统文件夹中。但是我怎么能这样做呢?如果我使用Base64对“Hello World”这样的简单文本进行编码,我可以使用Script Mediator和Javascript对其进行解码,但是如何将文件写入文件系统?我是否必须编写自己的Mediator或者是否有另一种我不知道的解决方案?
如果你能帮助我会很好:) 我正在使用WSO2 ESB作为我的学士论文。所以我不是专业人士:))
谢谢
答案 0 :(得分:2)
您有多种选择,
如果文件大小很小,请遍历<attachments>
,对于每个附件,使用脚本介体进行解码并使用语法写入文件,例如
<property name="transport.vfs.ReplyFileName" expression="expression-to-compute-file-name" scope="transport"/> <property action="set" name="OUT_ONLY" value="true"/> <send> <endpoint> <address uri="vfs:file:///home/user/test/out"/> </endpoint> </send>
如果文件很大,那么编写自己的类调解器会更有效率
答案 1 :(得分:0)
将文件发送到本地文件系统。使用VFS proxy