SFTP Node.js - можно ли перечислять файлы с использованием подстановочных знаков? - PullRequest
0 голосов
/ 23 ноября 2018

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

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

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

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

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

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

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

Джордж

1 Ответ

0 голосов
/ 23 ноября 2018

Ммм, я не думаю, что это возможно в 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
...