SFTP Node.js — можно ли отображать файлы с помощью подстановочных знаков?

Я пытаюсь перечислить все файлы на моем SFTP-сервере из папки верхнего уровня в Node.js, используя модуль npm ssh2-sftp-client. Однако я не могу найти никакой документации или предыдущих сообщений, в которых обсуждается, возможно ли использование подстановочных знаков в путях к файлам. Пути к файлам выглядят так:

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

Может быть много разных валют, кривых и дат - на самом деле сотни - мне нужно просто перечислить каждое имя файла на последнем уровне файловой структуры.

Я подумал, что разумным подходом будет использование подстановочных знаков:

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

Но это, похоже, не работает, и я не могу найти ничего, что могло бы предложить это. Может ли кто-нибудь посоветовать, как лучше всего перечислить каждый файл из SFTP в Node.js?

Большое спасибо,

Джордж


person GeorgeBT1902    schedule 23.11.2018    source источник


Ответы (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
person Sergio Flores    schedule 23.11.2018
comment
На самом деле, если вам не нужны конкретные подпапки, вы можете просто просмотреть их, используя приведенное выше, чтобы добраться до файлов самого низкого уровня, в основном список, forEach, список снова, пока не останется подпапок. - person Sergio Flores; 23.11.2018