我正在尝试使用Camel从SQS队列中读取XML消息,从XML中的特定节点提取URL,然后将该URL下载的文件下载到特定目录。
我正在使用Spring DSL。
XML消息看起来像这样:
<command>
<path>http://example.com/myfile/here?q=something¶m=somethingelse</path>
<....>
</command>
我怎样才能实现这一目标? (我可以编写一个处理器来读取SQS消息并下载文件,但看起来应该可以使用本机Camel组件)。
答案 0 :(得分:0)
如何使用splitter和camel-http组件下载文件。
路线可能喜欢这个
from("aws:xxx").split().xtokenize("//path", 't').to("direct:http");
from("direct:http").setHeader(Exchange.HTTP_URI, simple(${body}).setBody(constant(null).to("http://example.com");
如果使用Spring DSL,它看起来像这样
<route id="get-download-url">
<from uri="aws:xxx"/>
<split>
<xtokenize mode="t">//path</xtokenize>
</split>
<to uri="direct:http"/>
</route>
<route id="download-file">
<from uri="direct:http"/>
<setHeader headerName="CamelHttpUri">
<simple>${body}</simple>
</setHeader>
<setBody><simple></simple></setBody>
<to uri="http://example.com"/>
</route>