首页 > 解决方案 > 节点 scp2 速度问题?

问题描述

我正在使用节点服务器使用 scp2 检查并将文件从一台服务器(EC2 实例)传输到另一台服务器(商业服务器场)。

copyFile(tmpZip, remotepath, opts) {
return new Promise((resolve, reject) => {
  const Client = require('scp2').Client;
  const client = new Client(opts);
  let perc = 0;
  client.on('transfer', (buffer, uploaded, total) => {
    const currentPerc = Math.round(uploaded * 100 / total);
    if (currentPerc > perc) {
      perc = currentPerc;
      console.log('[ %s ] - [ %s ] Copied %s%', new Date(), tmpZip, perc);
    }
  });
  console.log('[ %s ] Copy started %s', new Date(), tmpZip);
  client.upload(tmpZip, remotepath, err => {
    if (err) {
      console.error('[ %s ]Copy failed ', tmpZip, err);
      reject(err);
      return;
    }
    console.log('[ %s ]File copied!', tmpZip);
    resolve();
  });
});
}

我的选择是:

const opts = {
            host,
            username,
            privateKey: Buffer.from(privateKey)
          };
          if (passphrase) {
            opts.passphrase = passphrase;
          }

我的问题是 Node 服务器传输(仅传输,不检查)1GB 文件大约需要 20 分钟,而普通的 bash scp 只需 1 分钟。是否有任何 scp2 已知问题?

更多信息:Node 服务器位于 ubuntu 16.04 服务器上的 docker 容器内,在此过程中不再产生网络流量。

标签: node.jsdockerfile-transferscp

解决方案


推荐阅读