首页 > 解决方案 > 仅对某些文件使用 ssh2-sftp-client (NodeJS) 过滤 uploaDir 的条件

问题描述

在我的 nodejs 代码中,我使用 ssh2-sftp-client ( https://github.com/theophilusx/ssh2-sftp-client ) 将一些文件传输到远程服务器:

我目录中的文件如下:

srcDir :

file1.py
file2.py
test.csv

我的示例代码如下:

   let SftpClient = require('ssh2-sftp-client');
   let sftp = new SftpClient();
   sftp.connect(connSettings)
         .then(() => {
          return sftp.uploadDir(srcDir,dst);   //need filter here
          }).then(rslt => {
                           ..
    }

该代码将 srcDir(py 和 csv)中的所有文件上传到目标,但我只希望将 python 文件复制到目标。我可以看到过滤器参数,但我无法弄清楚实现它的表达式。

我不确定我尝试过的示例中的模式

/*.py/ 
/^(.*\.(?!(py)$))?[^.]*$/i 
/^[^.py]/

等,但似乎没有帮助。

谢谢 [1]:https ://github.com/theophilusx/ssh2-sftp-client

标签: node.jsregexexpresssftpglob

解决方案


使用 ssh2-sftp-client 版本 6.0.0


推荐阅读