SFTP Node.js-是否可以使用通配符列出文件?

时间:2018-11-23 13:53:10

标签: node.js sftp ssh2-sftp

我正在尝试使用npm模块ssh2-sftp-client从Node.js的顶级文件夹中列出SFTP服务器中的所有文件。但是,我找不到任何讨论是否可以在文件路径中使用通配符的文档或以前的文章。文件路径如下所示:

../mnt/volume_lon1_01/currency/curve/date/filename.csv

可能有许多不同的货币,曲线和日期-实际上有数百种-我需要一种仅在文件结构的最终级别列出每个文件名的方法。

我认为明智的做法是使用通配符:

../mnt/volume_lon1_01/ * / * / * / *.csv

但是,这似乎不起作用,我找不到任何暗示。谁能建议最好的方法来列出Node.js中SFTP的每个文件?

非常感谢,

乔治

1 个答案:

答案 0 :(得分:1)

嗯,我认为这在ssh2中是不可能的,但是您可以做的是按算法列出它们并访问每个伪代码:

Connect SFTP
    List Folders -> Save this to a dictionary
    For each folder in Folders
        List Folders - > Save this to a dictionary

在它的结尾,您将拥有一个包含远程服务器完整路径的字典对象,就像这样

{
    sftp: {
        "subfolders": {
            "0": {
                 "name": "/rootfolder",
                 "subfolders": {
                     "0": {
                         "name": "/rootfolder",
                         "subfolders": {
                            ...
                         }
                      }
                  }
             }
        }
    }
}

通过此操作,您可以轻松访问所需的任何内容

sftp["/rootfolder"]["/subfolder1"]... etc