在Node中使用SFTP从浏览器下载文件,可以通过以下步骤实现:
ssh2-sftp-client
包来建立SFTP连接,并使用fs
包来处理文件操作。可以通过以下命令安装依赖:
npm install ssh2-sftp-client fs
const fs = require('fs');
const Client = require('ssh2-sftp-client');
ssh2-sftp-client
包创建一个SFTP连接,并指定连接的主机、端口、用户名和密码等信息:
const sftp = new Client();
const config = {
host: 'SFTP服务器地址',
port: 'SFTP服务器端口',
username: '用户名',
password: '密码'
};
sftp.connect(config)
.then(() => {
console.log('SFTP连接成功');
})
.catch((err) => {
console.error('SFTP连接失败', err);
});
get
方法来下载文件,并保存到本地指定的路径:
const remoteFilePath = '/远程文件路径';
const localFilePath = '/本地保存路径';
sftp.get(remoteFilePath, localFilePath)
.then(() => {
console.log('文件下载成功');
})
.catch((err) => {
console.error('文件下载失败', err);
});
在上述代码中,remoteFilePath
是要下载的远程文件路径,localFilePath
是要保存到本地的文件路径。
sftp.end();
完整的Node.js代码示例:
const fs = require('fs');
const Client = require('ssh2-sftp-client');
const sftp = new Client();
const config = {
host: 'SFTP服务器地址',
port: 'SFTP服务器端口',
username: '用户名',
password: '密码'
};
const remoteFilePath = '/远程文件路径';
const localFilePath = '/本地保存路径';
sftp.connect(config)
.then(() => {
console.log('SFTP连接成功');
return sftp.get(remoteFilePath, localFilePath);
})
.then(() => {
console.log('文件下载成功');
sftp.end();
})
.catch((err) => {
console.error('操作失败', err);
sftp.end();
});
这样,你就可以在Node.js中使用SFTP从浏览器下载文件了。请注意,上述代码中的参数需要根据实际情况进行替换,包括SFTP服务器地址、端口、用户名、密码,以及远程文件路径和本地保存路径。
领取专属 10元无门槛券
手把手带您无忧上云