https://www.npmjs.com/package/jsftp
const jsftp = require("jsftp");
const Ftp = new jsftp({
host: "myserver.com",
port: 3331, // defaults to 21
user: "user", // defaults to "anonymous"
pass: "1234" // defaults to "@anonymous"
});
jsftp 允许您以对象中方法的形式访问 FTP 协议的所有原始命令Ftp。它还为需要复杂命令链的操作(例如上传和检索文件、被动操作)提供了几种方便的方法,如下所示。
当原始命令成功时,它们总是将服务器的响应以包含两个属性的对象的形式传递给回调: ,code它是 FTP 操作的响应代码,以及text,它是响应的完整文本。
可以通过以下形式访问原始(或本机)命令Ftp.raw(command, params, callback)
因此,像这样的命令QUIT将被调用:
Ftp.raw("quit", (err, data) => {
if (err) {
return console.error(err);
}
console.log("Bye!");
});
和一个像MKD(make directory) 这样接受参数的命令,看起来像这样:
Ftp.raw("mkd", "/new_dir", (err, data) => {
if (err) {
return console.error(err);
}
console.log(data.text); // Show the FTP response text to the user
console.log(data.code); // Show the FTP response code to the user
});
API和例子
new Ftp(options))
options
是具有以下属性的对象:
{
host: 'localhost', // Host name for the current FTP server.
port: 3333, // Port number for the current FTP server (defaults to 21).
user: 'user', // Username
pass: 'pass', // Password
createSocket: ({port, host}, firstAction) => {
return net.createConnection({port, host}, firstAction);
}, // function that creates the socket, default uses net.createConnection
}
options.createSocket
可用于实现 ftp 套接字的代理,例如 socksv5
const {SocksClient} = require('socks');
const ftp = new Ffp({
host: 'localhost',
port: 3333,
user: 'user',
pass: 'password',
createSocket: ({port, host}, firstAction) => {
return SocksClient.createConnection({
proxy: {
ipaddress: '159.203.75.200'
port: 1080,
type: 5
},
command: 'connect',
destination: {
host,
port
}
})
}
})
Creates a new Ftp instance.
https://www.npmjs.com/package/jsftp?activeTab=readme
作者:Jeebiz 创建时间:2023-03-30 09:11
最后编辑:Jeebiz 更新时间:2024-11-05 14:07
最后编辑:Jeebiz 更新时间:2024-11-05 14:07