0

下面我可以连接到 SFTP 服务器并读取文件列表。这验证我能够成功连接到服务器:

let Client = require('ssh2-sftp-client');
let sftp = new Client();

sftp.connect(config).then(() => {
    return sftp.list('/reports/2021/06');
})
  .then(data => {
      console.log(JSON.stringify(data));
  })
  .then(() => {
      sftp.end();
  })
  .catch(err => {
      console.log(err);
  })
return null;

现在作为赛普拉斯测试的一部分,我想将一个文本文件从我的本地机器上传到服务器上。

sftp.connect(config).then(() => {
    sftp.put('C:/Users/damie/Documents/myText.txt', 'myText.txt');
}).then((data) => {
    console.log(data, 'the data info');
}).catch((err) => {
    console.log(err, 'catch error');
});

但我收到此错误消息:

Error: put: I/O error myText.txt
    at fmtError (C:\Dev\myProject\node_modules\ssh2-sftp-client\src\utils.js:55:18)
    at WriteStream.<anonymous> (C:\Dev\myProject\node_modules\ssh2-sftp-client\src\index.js:728:18)
    at Object.onceWrapper (events.js:418:26)
    at WriteStream.emit (events.js:311:20)

本地文件路径正确,并且该文件存在。但myText.txt在远程服务器上不存在,我希望用该名称添加它。

有人可以告诉我我做错了什么以及如何解决吗?

4

0 回答 0