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

FTP source - obtaining file reference each time a file is transferred

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

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

如果 FTP 服务器包含两个文件,这两个文件都将被传输并且日志接收器将记录如下内容:

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 目录中删除已经传输的文件,文件将再次传输但不会写入接收器日志消息。

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

谢谢。

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

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