使用Camel基于SQS消息中的URL下载文件

时间:2014-11-21 19:16:55

标签: apache-camel

我正在尝试使用Camel从SQS队列中读取XML消息,从XML中的特定节点提取URL,然后将该URL下载的文件下载到特定目录。

我正在使用Spring DSL。

XML消息看起来像这样:

<command>
    <path>http://example.com/myfile/here?q=something&param=somethingelse</path>
    <....>
</command>

我怎样才能实现这一目标? (我可以编写一个处理器来读取SQS消息并下载文件,但看起来应该可以使用本机Camel组件)。

1 个答案:

答案 0 :(得分:0)

如何使用splittercamel-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>