nifi - fetchsftp - 子文件夹

时间:2018-01-10 09:04:46

标签: ftp expression sftp apache-nifi

我正在使用nifi在ftp位置之间传输文件。

我必须将文件从sftp位置传输到ftp目录。

我在远程sftp位置有以下文件夹结构。

  • / rootfolder /
    • / subfolder1
    • / subfolder2
    • / subfolder3

我需要将每个子文件夹中的相应文件下载到具有类似结构的本地目录。

我的工作流程包括

ListSFTP -> FetchSFTP (3) -> PutFTP

在ListSFTP中 远程路径:/ rootfolder

在FetchSFTP1中 远程路径:/ rootfolder / subfolder1

在FetchSFTP2中 远程路径:/ rootfolder / subfolder2

在FetchSFTP3中 远程路径:/ rootfolder / subfolder3

但是,这似乎不起作用。有人可以帮助我如何从远程sftp子文件夹传输文件。

谢谢,

Aadil

1 个答案:

答案 0 :(得分:0)

您应该能够将ListSFTP设置为递归搜索,然后从ListSFTP出来,每个流文件将具有" path" ad" filename"。

假设您的示例中每个目录下都有一个文件,您应该获得三个流文件,如下所示:

ff 1 path = / rootfolder / subfolder1 filename = file1

ff 2 path = / rootfolder / subfolder2 filename = file2

ff 3 path = / rootfolder / subfolder3 filename = file3

您应该只需要一个远程文件名设置为$ {path} / $ {filename}的FetchSFTP处理器。

如果目标系统上的结构相同,只需将PutFTP的远程路径设置为$ {path}。

如果您的结构略有不同,请使用UpdateAttribute修改" path"就在PutFTP之前。