使用节点v16.18.0、类型记录v10.9.1和ssh2-sftp客户端,我已经建立了到SFTP服务器的连接。
我必须遍历所有文件并将它们复制到另一个位置(AWS S3)。为此,我必须获取SFTP位置(根或文件夹)内的文件列表。这是SFTP文件夹内容的一个示例:
这是我得到文件列表的代码
let Client = require('ssh2-sftp-client');
let sftp = new Client();
await sftp.connect({
host: params.SourceAddress,
port: params.SourcePort,
username: params.SourceUserId,
password: params.SourcePassword,
privateKey: params.SourceSftpKey,
});
//The exception occurs on this next line
const files = await sftp.list(`/${params.SourcePath}`);这就是我遇到的错误:
错误:列表:没有这样的文件/#/TestFolder1 1
如果我删除了所有的文件夹,并且在这个位置上只有文件,那么所有的东西都会像预期的那样运行。
谢谢
发布于 2022-11-04 00:21:51
我在这里找到了答案:https://openbase.com/js/node-sftp-client/documentation
虽然这看起来类似于我的代码,但这个代码将返回文件夹和文件:
let Client = require('ssh2-sftp-client');
let sftp = new Client();
sftp.connect({
host: '127.0.0.1',
port: '8080',
username: 'username',
password: '******'
}).then(() => {
return sftp.list('/pathname');
}).then((data) => {
console.log(data, 'the data info');
}).catch((err) => {
console.log(err, 'catch error');
});希望这能有所帮助。
https://stackoverflow.com/questions/74308833
复制相似问题