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

SFTP Node.js - Is it possible to list files using wildcards?

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

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

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

我认为一个明智的方法是使用通配符:

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

但这似乎行不通,而且我找不到任何建议。谁能建议如何最好地列出 Node.js 中来自 SFTP 的每个文件?

非常感谢,

乔治

嗯,我不认为这在 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