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
日期更改时传递文件。
假设我创建了一个这样的流:
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
日期更改时传递文件。