FTP 客户端在 Node.js 上用于 Windows 服务器
FTP client on Node.js for Windows Server
有现货
- Linux (Debian) 发行版 Node.js 安装第三方
- 第三方Windows服务器
任务
有必要使用 Node.js 平台与 Windows 服务器建立 FTP 连接,剪切特定文件夹(以及位于其中的文件夹和文件)并将其粘贴到服务器上的特定目录中 运行 Linux.
问题
是否可以实现描述的任务?如果是,使用什么 NPM 包和/或什么程序代码适合解决问题?
您可以使用来自 npm
的 ssh2-sftp-client 包
const Client = require('ssh2-sftp-client');
const config = {
host: 'example.com',
port: 22,
username: 'red-don',
password: 'my-secret'
};
let sftp = new Client;
sftp.connect(config)
.then(() => {
return sftp.list('/path/to/remote/dir');
})
.then(async data => {
console.log(data);
for(let file of data) {
//you can check if file is directory or file
if(file.type == 'd') {
//recursively read files
}else {
//download file
const remoteFilename = '/path/to/remote/dir/' + data.name;
const localFilename = '/path/to/local/files/' + data.name;
sftp.get(remoteFilename).then((stream) => {
stream.pipe(fs.createWriteStream(localFilename));
});`enter code here`
}
}
//delete directory recursively after all files are download
return client.rmdir(/path/to/remote/dir, true);
})
.then(() => {
sftp.end();
})
.catch(err => {
console.error(err.message);
});
const ftp = require('basic-ftp');
ftp_connect()
async function ftp_connect() {
const client = new ftp.Client();
client.ftp.verbose = true;
try {
await client.access({
host: 'host',
port: '21',
user: 'domain\username',
password: 'password',
secure: false
})
console.log(await client.list())
}
catch(err) {
console.log(err)
}
client.close()
}
有现货
- Linux (Debian) 发行版 Node.js 安装第三方
- 第三方Windows服务器
任务
有必要使用 Node.js 平台与 Windows 服务器建立 FTP 连接,剪切特定文件夹(以及位于其中的文件夹和文件)并将其粘贴到服务器上的特定目录中 运行 Linux.
问题
是否可以实现描述的任务?如果是,使用什么 NPM 包和/或什么程序代码适合解决问题?
您可以使用来自 npm
的 ssh2-sftp-client 包const Client = require('ssh2-sftp-client');
const config = {
host: 'example.com',
port: 22,
username: 'red-don',
password: 'my-secret'
};
let sftp = new Client;
sftp.connect(config)
.then(() => {
return sftp.list('/path/to/remote/dir');
})
.then(async data => {
console.log(data);
for(let file of data) {
//you can check if file is directory or file
if(file.type == 'd') {
//recursively read files
}else {
//download file
const remoteFilename = '/path/to/remote/dir/' + data.name;
const localFilename = '/path/to/local/files/' + data.name;
sftp.get(remoteFilename).then((stream) => {
stream.pipe(fs.createWriteStream(localFilename));
});`enter code here`
}
}
//delete directory recursively after all files are download
return client.rmdir(/path/to/remote/dir, true);
})
.then(() => {
sftp.end();
})
.catch(err => {
console.error(err.message);
});
const ftp = require('basic-ftp');
ftp_connect()
async function ftp_connect() {
const client = new ftp.Client();
client.ftp.verbose = true;
try {
await client.access({
host: 'host',
port: '21',
user: 'domain\username',
password: 'password',
secure: false
})
console.log(await client.list())
}
catch(err) {
console.log(err)
}
client.close()
}