我想使用camel下载一个非常大的文件,但我不想将整个文件保存在内存中,然后将其保存到文件中。 我想将文件流传输并保存或写入文件块中。
这可能与Camel有关,如果是这样,我该怎么做?
注意:我下载文件的端点是否可能不支持流/分块?如果是,我该如何验证?
答案 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