我曾尝试使用不同的Internet在不同的系统上遇到相同的问题。请帮助我解决这个问题。
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是否已连接
答案 0 :(得分:0)
我能够解决这个问题。 发生的主要问题是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
我的代码为我成功了