繁体   English   中英

如何在 Node.js 中设置 ftp-srv 的根目录

[英]How to set root directory of ftp-srv in Node.js

我正在尝试使用ftp-srv创建一个 ftp 服务器

这是我的代码:

const FtpSvr = require ( 'ftp-srv' );

const hostname = '0.0.0.0';
const port = 5053

const ftpServer = new FtpSvr ({
    url:'ftp://' + hostname + ':' + port ,
    anonymous: false,
    greeting : [ "Hello user"]
});


ftpServer.on('login', (data, resolve, reject) => {
    if(data.username === "user1" && data.password === "ip1") {
        // call resolve
        return resolve({root: '/home/test1/'});
    }
    else{
        // if password and username are incorrectly then call reject
        reject({});
    }
});



ftpServer.listen()
    .then(() =>
    {
        console.log ( `Server Running at ftp://${hostname}:${port}/` );
    });

我已将“/home/test1/”设置为根目录,并且“test1”权限设置为 777,但在客户端,它会引发错误

在 ftp 服务器上打开该文件夹时发生错误确保您有权限

我还尝试了另一个 ftp 客户端(winscp),它引发了这个错误:

无法检索目录列表。 不支持命令

我真的很困惑!

最后我找到了ftp-srv的正确选项。 现在它的工作:

const FtpSvr = require ( 'ftp-srv' );

const hostname = '0.0.0.0';
const port = 5053

const ftpServer = new FtpSvr ({
    url:'ftp://' + hostname + ':' + port ,
    pasv_url:'ftp://172.18.56.71' ,
    pasv_min:5054,
    pasv_max:5055,
    file_format: "ls",
    anonymous: false,
    greeting : [ "Hello user"]
});


ftpServer.on('login', (data, resolve, reject) => {
    if(data.username === "user1" && data.password === "ip1") {
        // call resolve
        return resolve({root: './test/'});
    }
    else{
        // if password and username are incorrectly then call reject
        reject({});
    }
});



ftpServer.listen()
    .then(() =>
    {
        console.log ( `Server Running at ftp://${hostname}:${port}/` );
    });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM