node.js - 无法使用 FTPClient node.js 模块上传两个或多个文件

标签 node.js put ftp-client

我正在使用node和node-ftp模块。我需要将两个文件上传到另一台服务器,我可以上传一个文件,但是当我尝试上传两个文件时,它会返回错误。

根据他们的api,这是发送文件的代码

var fs = require('fs');
conn.put(fs.createReadStream('/var/www/videoComplete/'+ videoID +'.flv'), '/home/wowza/content/'+ videoID +'.flv', function(e) {
  console.log(fileName + '.flv uploaded to Streaming Server :)');
  conn.end();
});

它工作正常,但如果我想做两个文件,我假设我必须重复该功能,但它不起作用。有谁知道如何使用 FTPClient 发送两个或多个文件

这是我尝试执行的代码

conn = new FTPClient({ host: 'serverIP' });
conn.on('connect', function() {
  conn.auth('user', 'pass', function(e) {
    if (e) throw e;
    var fs = require('fs');

    conn.put(fs.createReadStream('/var/www/ce-videoComplete/'+ videoID +'.flv'), '/home/wowza/content/'+ videoID +'.flv', function(e) {
      console.log(fileName + '.flv uploaded to Streaming Server :)');
      conn.end();
    });

    conn.put(fs.createReadStream('/var/www/ce-thumbnails/'+ videoID +'.jpg'), '/var/www/html/thumbnails/'+ videoID +'.jpg', function(e) {
      console.log(fileName + '.jpg uploaded to Streaming Server :)');
      conn.end();
    });

  });
});
conn.connect();

更新:我也尝试过,但无法再次连接。

conn.put(fs.createReadStream('/var/www/ce-videoComplete/'+ videoID +'.flv'), '/home/wowza/content/'+ videoID +'.flv', function(e) {
  console.log(fileName + '.flv uploaded to Streaming Server :)');
  conn.end();

  conn.put(fs.createReadStream('/var/www/ce-thumbnails/'+ videoID +'.jpg'), '/var/www/html/thumbnails/'+ videoID +'.jpg', function(e) {
    console.log(fileName + '.jpg uploaded to Streaming Server :)');
    conn.end();
  });
});

最佳答案

在两个文件连续上传之前不要结束连接:

conn.put(fs.createReadStream('/var/www/ce-videoComplete/'+ videoID +'.flv'), 
    '/home/wowza/content/'+ videoID +'.flv',
    function(e) {
        console.log(fileName + '.flv uploaded to Streaming Server :)');

        conn.put(fs.createReadStream('/var/www/ce-thumbnails/'+ videoID +'.jpg'),
            '/var/www/html/thumbnails/'+ videoID +'.jpg', 
            function(e) {
                console.log(fileName + '.jpg uploaded to Streaming Server :)');
                // Now that both files are uploaded, end the connection.
                conn.end();
            });  
        });
    }
);

关于node.js - 无法使用 FTPClient node.js 模块上传两个或多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12163359/

相关文章:

node.js - npm ERR!安装react-native时拒绝删除

java - 通过android Volley使用PUT方法发送空体

windows - 服务器端 FTP 批处理脚本

java - FTPClient 的 setFileTransferMode 没有生效

javascript - (...).then 不是 Node (expressJS) 中的函数

node.js - 如何将代理与 Node 和 ESM 结合使用?

java - 需要有关剩余 PUT 方法的解释

java - 通过 java 连接到 ftps 站点

javascript - 在表操作按钮内表达无效的 CSRF token

rest - 当在 URL 和正文中使用 id 进行 PUT 操作时,哪一个获胜?