下面我可以连接到 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
在远程服务器上不存在,我希望用该名称添加它。
有人可以告诉我我做错了什么以及如何解决吗?