Node.js - ssh2-sftp-client 获取多个文件错误

Node.js - ssh2-sftp-client getting multiple files error

我使用 ssh2-sftp-client 获取一些文件。如果我使用 sftp.end();最后我在控制台中收到此错误:

{ Error: fastGet->exists->exists: No SFTP connection available
    at Object.formatError (/home/project/node_modules/ssh2-sftp-client/src/utils.js:62:18)
    at SftpClient.fastGet (/home/project/node_modules/ssh2-sftp-client/src/index.js:590:19)
    at process._tickCallback (internal/process/next_tick.js:68:7) code: 'ERR_NOT_CONNECTED', custom: true } 'Error'

...

我错过了什么?

我认为目前正在发生的事情是,由于您没有从第二个 then() return 中获取 Promise,因此第三个 then() 会立即得到解决(值为 undefined),这会导致您的连接立即终止(在您的 fastGet() 有时间完成之前)。

要解决此问题,您需要从第二个 then() 中明确 return 一个 Promise,只有在所有文件都已传输后才能解决。如果至少有一次传输失败,您可能还需要考虑拒绝该承诺。