如何向 Apache Camel FTP 写入字节或流来传输文件

mas*_*boo 5 java byte stream filestream camel-ftp

目前在我的代码中,我从数据库获取数据,然后从数据中写入一个文件。我有这种骆驼路线和工作解决方案:-

private static final String INPUT_FILE_DIRECTORY_URI = "file:" + System.getProperty("user.home")
        + "/data/cdr/?noop=false";

private static final String SFTP_SERVER = "sftp://" +System.getProperty("user.name")
        + "@sftp_server_url/data/cdr/?privateKeyFile=~/.ssh/id_rsa&passiveMode=true";

from(INPUT_FILE_DIRECTORY_URI)
            .streamCaching()
            .log("Sending file to local sftp")
            .to(SFTP_SERVER); 
Run Code Online (Sandbox Code Playgroud)

我不想在本地磁盘中写入文件。相反,我想将文件数据直接写入SFTP服务器。我不知道该怎么办?但我想应该是可以做到的。你能告诉我这可能吗?如果是,该怎么做?

mas*_*boo 1

我设法用另一种方式解决了这个问题。它更适合我的特定问题。

             byte[] csvData = csvStringBuilder.toString().getBytes();
             Routes.withProducer(producer)
                    .withHeader(Exchange.FILE_NAME, myCsvFile.csv)
                    .withBody(csvData)
                    .to(SFTP_SERVER).request(byte[].class);
Run Code Online (Sandbox Code Playgroud)