[英]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.