gpt4 book ai didi

node.js - 无法使用 Node js 从 SFTP 下载大文件

转载 作者:行者123 更新时间:2023-12-03 12:26:04 39 4
gpt4 key购买 nike

我正在尝试使用 Node 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 停止响应并且我的网络变为 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

我的代码对我有用

关于node.js - 无法使用 Node js 从 SFTP 下载大文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56673065/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com