Как перечислить все подпапки и файлы пути FTP в объект - PullRequest
0 голосов
/ 03 июля 2019

Я хотел бы предоставить интерфейс для просмотра папок и файлов на FTP-сервере.Этот интерфейс будет сделан в Vuejs, и мне нужен объект, который ссылается на все папки, подпапки и файлы внутри них, с их путем, форматом, размером, датой.

Массив объекта будет выглядеть так:

[
    {
        "Folder1": {
            "subfolder1": {
                "file1": {
                    "name": "filename",
                    "type": "jpg",
                    "size": "7951",
                    "date": "2019-02-13T15:31:00.000Z",
                    "path": "/Folder1/subfolder1/"
                },
                "file2": {
                    "name": "filename",
                    "type": "pdf",
                    "size": "7951",
                    "date": "2019-02-13T15:31:00.000Z",
                    "path": "/Folder1/subfolder1/"
                }
            },{
            "subfolder2": {
                "file1": {
                    "name": "filename",
                    "type": "jpg",
                    "size": "7951",
                    "date": "2019-02-13T15:31:00.000Z",
                    "path": "/Folder1/subfolder2/"
                },
                "file2": {
                    "name": "filename",
                    "type": "tif",
                    "size": "7951",
                    "date": "2019-02-13T15:31:00.000Z",
                    "path": "/Folder1/subfolder2/"
                }
            }
        },{
        "file-in-folder1": {
            "name": "filename",
            "type": "ppt",
            "size": "7951",
            "date": "2019-02-13T15:31:00.000Z",
            "path": "/Folder1/"
    }
}}}]

Я перепробовал все npm jsftp, обещание-ftp, node-ftp ... все они предоставляют примеры того, как читать одну папку, но не нашли ничего о том, как пролистать целоепапка и подпапка и список всего.

На данный момент я застрял с этим:

const ftp = require('ftp')

var Client = require('ftp');

var c = new Client();
c.on('ready', function () {
    c.list('/home', function (err, list) {
        if (err) throw err;
        console.dir(list);
        console.log(list)
        c.end();
    });
});
// connect to localhost:21 as anonymous
c.connect({ host: '***', user: '****', password: '***' });

Любая помощь или предложение другого плагина или способ работы будет принята с благодарностью.Я также задавался вопросом, существует ли какой-то API в Интернете, который мог бы служить этой цели.Который сканирует ftp и обслуживает весь контент в виде массива объектов, который вы затем можете использовать в любом интерфейсном интерфейсе.

Если у кого-то есть интегрированное решение vuejs, это будет даже более круто!

...