Nodejs使用Sftp上传
代码
javascript
/*
* @Author: 芝士雪豹
* @Date: 2023-12-21 19:20:17
* @LastEditors: your name
* @LastEditTime: 2023-12-21 19:22:33
* @Description:
* @FilePath: /my-blog/autoUpdate.js
*/
const Sftp = require('ssh2-sftp-client');
const serverConfig = {
host: '', // string服务器的主机名或IP。
port: 22, // 服务器的端口号。
forceIPv4: false, // boolean (optional) 仅通过IPv4地址连接
forceIPv6: false, // boolean (optional) 仅通过IPv6地址连接
username: '', //string身份验证用户名.
password: '', // string基于密码的用户身份验证的密码
readyTimeout: 20000, // integer等待SSH握手的时间(以毫秒为单位)
strictVendor: true, // boolean-执行严格的服务器供应商检查
// debug: myDebug,function-将其设置为接收单个,用于获取详细(本地)调试信息的字符串参数。
retries: 2, // 整数重试连接的次数
retry_factor: 2, //整数用于计算重试间隔时间的时间因子
retry_minTimeout: 2000, // 整数尝试之间的最小超时
}
// 上传
async function upload() {
console.log('upload')
const client = new Sftp('upload');
// 本地需要上传的目录
const src = 'xxxxx‘'
// sftp上传到的目录
const dst = 'xxxxx';
try {
const connect = await client.connect(serverConfig);
client.on('upload', info => {
console.log(`Listener: Uploaded ${info.source}`);
});
let rslt = await client.uploadDir(src, dst);
console.log(rslt);
} catch (err) {
console.error('err',err);
} finally {
console.log('连接断开');
client.end();
}
}
upload()