Skip to content

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()
最近更新