我正在尝试使用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 1/’设置为根目录,“test1”权限设置为777,但是在客户端,它会引发一个错误
打开ftp服务器上的文件夹时出错,请确保您有权限。
另外,我尝试了另一个ftp客户端(winscp),它引发了以下错误:
无法检索目录列表。不支持的命令
我真的很困惑!
发布于 2020-12-13 12:50:56
最后,我找到了ftp的正确选项。它现在起作用了:
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}/` );
});
https://stackoverflow.com/questions/65275046
复制相似问题