FTP源 - 每次传输文件时获取文件引用

时间:2017-10-24 19:13:07

标签: spring-xd

假设我创建了一个这样的流:

stream create --name ftpstream --definition "ftp --username=ftpuser --password=pass123 --host=host.com --remoteDir=/home/ftpuser --mode=ref | log" --deploy

如果FTP服务器包含两个文件,则两者都将被传输,log sink将记录如下内容:

2017-10-24T20:43:08+0200 1.3.1.RELEASE INFO task-scheduler-3 sink.ftpstream - /tmp/xd/ftp/dummy.txt
2017-10-24T20:43:08+0200 1.3.1.RELEASE INFO task-scheduler-3 sink.ftpstream - /tmp/xd/ftp/test.txt

但是,此打印仅在第一次处理新文件时发生(如果我向FTP服务器添加新文件,则接收日志将记录消息) 但如果我从本地/tmp/xd/ftp目录中删除已传输的文件,则会再次传输文件,但不会写入接收日志消息。

每次传输文件时如何正确获取文件引用?

感谢。

1 个答案:

答案 0 :(得分:0)

您需要一个自定义FTP源 - 默认来源AcceptOnceFileListFilter中有一个local-filter,因此它不会两次传递相同的文件(即使它已被提取)。

如果您使用FileSystemPersistentAcceptOnceFileListFilter,则会在lastModified日期更改时传递该文件。