node.js - 节点 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 容器内,在此过程中不再产生网络流量。
解决方案
推荐阅读
- bash - 使用 zcat 将文件通过管道传输到下游命令
- sql - SQL中的乘法
- javascript - jest-puppeteer:从窗口访问 IndexedDB
- linux - 用于替换另一个文件中的占位符的 Shell 脚本
- scala - 如何使用 Doobie (scala) 动态生成 SQL 语句
- python - Django:为 Model.objects.filter 的 group by(注释)字段设置别名
- ember.js - 从文件和 Ember CLI Mirage 中获取内容
- php - 如何在php中拆分和求和逗号分隔的多行值
- docker - k8s:让 k8s 可以访问本地图像
- android - 使用CardView 在最后一张卡片后添加底部信息栏