如何使用camel以块的形式下载文件?

时间:2016-08-31 21:50:55

标签: java file-io apache-camel streaming

我想使用camel下载一个非常大的文件,但我不想将整个文件保存在内存中,然后将其保存到文件中。 我想将文件流传输并保存或写入文件块中。

这可能与Camel有关,如果是这样,我该怎么做?

注意:我下载文件的端点是否可能不支持流/分块?如果是,我该如何验证?

2 个答案:

答案 0 :(得分:0)

Camel的HTTP组件使用Netty发出请求。 Netty将整个响应读入内存,因此无法满足您的要求。

您需要为Camel实现自己的端点,该端点利用另一个支持HTTP响应流的HTTP库。

此处提供了更多文档:

https://cwiki.apache.org/confluence/display/CAMEL/Netty4+HTTP

答案 1 :(得分:0)

您可以选择下载文件,即使用:

  

ftp://[username@]hostname[:port]/directoryname[?options]   SFTP:// [用户名@]主机名[:端口] [?选项] /目录名   FTPS:// [用户名@]主机名[:端口] [?选项] /目录名

可以选择streamDownload。

有关详情,请查看http://camel.apache.org/ftp.html