首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在node.js中下载ssh2-sftp客户端的所有文件夹和文件

如何在node.js中下载ssh2-sftp客户端的所有文件夹和文件
EN

Stack Overflow用户
提问于 2021-08-26 00:15:11
回答 1查看 676关注 0票数 0

因此,如标题所述,im试图下载存储在sftp服务器中的所有文件夹和文件,因此im使用ssh2-sftp客户端包来完成这一任务,但目前我刚刚在控制器指定的文件夹中下载了单个文件,下面是代码。

代码语言:javascript
复制
    checkCtrl.checkSftp = async (req, res) => {
  console.log(req.body);
  console.log('wtf men');
  const {url,username,password,port} = req.body

  const host = url;
  
  sftp.connect({
    host,
    port,
    username,
    password,
    keepaliveInterval :2000,
    keepaliveCountMax :20
  }).then(() => {
    return sftp.list('/');
  }).then(async (data) => {
    console.log(`Remote working directory is ${data}`);
    console.log(data);

    len = data.length;
    // x is one element of the array
    await data.forEach(x => {
        let remoteFilePath = '/' + x.name;
        sftp.get(remoteFilePath).then((stream) => {
            // save to local folder ftp
            let file = './ftp/' + x.name;
            fs.writeFile(file, stream, (err) => {
                if (err) console.log(err);
            });
        });
    });

    // res.status(200).send(`Success`)

    // return sftp.end();
  }).catch(err => {
    res.status(400).send('error')
    console.log(err, 'catch error');
  });

};

我只想下载指定文件夹中的所有文件

此外,如果有与FTP服务器相同的建议,将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2022-01-04 17:14:57

我可以使用以下示例下载给定文件夹中的所有.csv文件:

https://github.com/theophilusx/ssh2-sftp-client/blob/master/example/downloadDir.js

我只想要.csv文件,所以我添加了:

代码语言:javascript
复制
const filter = '(\\.csv$)'

let rslt = await client.downloadDir(src, dst, filter);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68931119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档