How to close input stream of FTP inbound endpoint

2019-09-05 13:48发布

I have a very simple configuration which copies the file from FTP server to file outbound. I am using streaming for file transfer because of huge file sizes. This is my config:

 <ftp:connector name="ftpConnector" streaming="true" pollingFrequency="360000"/>

    <flow name="copyFTPtoFile">
        <ftp:inbound-endpoint name="FTP" connector-ref="ftpConnector" host="FTP" port="21" user="test" password="test" path="/Testenv" />
        <file:outbound-endpoint path="/vendor/in" />
    </flow>

I am not sure how to close the input-stream so that files are deleted from FTP server once they are copied.

1条回答
走好不送
2楼-- · 2019-09-05 14:14

Since the payload is an InputStream, the following code of the file outbound endpoint dispatcher will be executed:

InputStream is = event.transformMessage(DataTypeFactory.create(InputStream.class));
IOUtils.copyLarge(is, fos);
is.close();

So the stream should be automatically closed for you.

查看更多
登录 后发表回答