"使用SFTP获取文件" step能够从指定的源路径(通过FTP)获取所有文件。但是它无法读取源路径中存在的任何文件夹。我尝试使用Reg-Exp外卡,如。*或*或。等,但没用。
在我的用例中,源文件总是会出现在一个或多个文件夹中(例如,月份特定文件夹中的月度事务文件,或多级文件夹层次结构中的逐年和月份文件夹等)。如果所有这些文件夹都移动到我的本地计算机,那么我可以使用"获取文件名"步骤从每个文件夹和子文件夹中读取文件。
任何人都可以指导我如何从源文件中复制/移动所有文件和文件夹"使用SFTP获取文件"步骤
答案 0 :(得分:2)
尝试VFS。我不确定它是否有效,但PDI中一个鲜为人知的惊人技巧是,在引用文件的任何地方,您都可以使用VFS URL和VFS支持SFTP以及许多其他内容。
http://infocenter.pentaho.com/help/index.jsp?topic=%2Fpdi_user_guide%2Fconcept_vfs_sftp_config.html
答案 1 :(得分:0)
我相信您需要遍历各个子文件夹并继续迭代,直到文件夹用完为止。没有"递归" sftp的选项,afaik。
答案 2 :(得分:0)
我认为你不会找到一步,但我们可以解决这个问题。 我会在工作中采取与处理类似问题相同的方法。
我们使用Shell Step在linux中运行一个shell脚本,该脚本可以列出一个文件夹(包含子文件夹)并创建一个文件,其中包含我想要在下一步读取的所有文件路径(一个路径/文件名)每行)。
该作业的下一步是一个转换,它读取在该shell上生成的文件(我们总是在同一个地方生成),在转换结束后,我有一个delete file步骤,它会杀死文件,所以我们可以下次再生成另一个。
希望它有所帮助。如果您需要更多详情,请告诉我。