node.js - 如何在 Node.js 中设置 ftp-srv 的根目录
问题描述
我正在尝试使用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}/` );
});
推荐阅读
- c - 我应该使用哪种类型的功能?
- python-3.x - 由于图形导致的 Keras 可重复性问题
- javascript - 错误:根据提供的形状 [12544,100] 和 dtype float32,张量应该有 1254400 个值但有 0
- java - java - 如何使用Java流获得具有相同最大值的所有对象?
- javascript - 我想写一个可以生成随机地址的脚本
- iphone - 可以在浏览器中访问原深感摄像头吗?
- vue-router - 如何仅更改当前路由 vue-router 中的特定查询参数?
- nginx - Nginx 反向代理和延迟
- network-interface - C++ 理解 boost asio 多播接收器
- excel - VBA 用户窗体应该使用哪种显示模式来显示数据、控制它并确认它没问题?