【问题标题】:Not able to download big file from SFTP using node js无法使用节点 js 从 SFTP 下载大文件
【发布时间】:2019-11-02 12:17:19
【问题描述】:

我正在尝试使用节点 js 使用 ssh2-sftp-client 模块从 SFTP 下载 4 GB 文件。我的主要问题是大约 40%(有时也不准确,有时也有 45 个)的文件在下载停止之后被下载,既没有发生错误,也没有在下载中显示任何进度。

我尝试过使用不同互联网的不同系统并面临同样的问题。请帮助我在这个问题上受到严重打击。

let Client = require('ssh2-sftp-client');
let sftp = new Client();
function DownloadFromSFTP(){
sftp.connect({
host: '127.0.0.1',
port: '8080',
username: 'username',
password: '******'
}).then(() => {
return sftp.list('/');
}).then((data) => {
if(data.length>0){
var remotepath='/'+data.name;
var localpath=="/path/to/local/folder"+data.name;
sftp.fastGet(remotePath, localPath, {
concurrency:640,
Chunksize:32768},function(err){
if(err) throw err
console.log("downloaded successfully")
});
}
}).catch((err) => {
console.log(err, 'catch error');
});
}

如果文件没有完全下载,那么它应该显示错误,或者如果它与 sftp 断开连接如何检查 ftp 是否连接

【问题讨论】:

  • 这可能是也可能不是 sftp 问题。可能是本地文件系统问题……可能是远程服务器问题……它适用于 2gb 文件吗?
  • 当我使用 filezilla 从 sftp 下载相同的文件时,它下载顺利。仅当我尝试使用代码下载时才会出现问题。如果我尝试下载小文件,效果很好

标签: node.js electron ssh2-sftp


【解决方案1】:

我能够解决这个问题。 发生的主要问题是 SFTP 停止响应并且我的网络变为 0 以下是更新的代码

    let Client = require('ssh2-sftp-client');
    let sftp = new Client();
    function DownloadFromSFTP(){
    sftp.connect({
    host: '127.0.0.1',
    port: '8080',
    username: 'username',
    password: '******',
keepaliveInterval :2000,
keepaliveCountMax :20
    }).then(() => {
    return sftp.list('/');
    }).then((data) => {
    if(data.length>0){
    var remotepath='/'+data.name;
    var localpath=="/path/to/local/folder"+data.name;
    sftp.fastGet(remotePath, localPath, {
    concurrency:640,
    Chunksize:32768},function(err){
    if(err) throw err
    console.log("downloaded successfully")
    });
    }
    }).catch((err) => {
    console.log(err, 'catch error');
    });
    }

添加

 keepaliveInterval :2000,
    keepaliveCountMax :20

我的代码对我有用

【讨论】:

  • 有什么办法可以通过其他方式快速下载,谢谢。
  • 我必须如何设置我的本地路径才能工作?
猜你喜欢
  • 2019-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-09
  • 2015-12-26
  • 2019-06-11
相关资源
最近更新 更多