我使用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();
});
});发布于 2012-08-29 02:03:48
在两个文件连续上传之前,不要结束连接:
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();
});
});
}
);发布于 2015-10-15 22:50:11
我是FTPimp的作者,与任何其他Node FTP模块不同,FTPimp有一个专有的队列,可以异步和顺序地运行所有东西,所以你可以通过以下方式避免回调地狱和耦合依赖:
ftp.put(['/var/www/ce-videoComplete/'+ videoID +'.flv', '/home/wowza/content/'+ videoID +'.flv'], function (err, filename) {
console.log(fileName + 'uploaded to Streaming Server :)');
});
ftp.put(['var/www/ce-thumbnails/'+ videoID +'.jpg', '/var/www/html/thumbnails/'+ videoID +'.jpg'], function(err, filename) {
console.log(fileName + ' uploaded to Streaming Server :)');
ftp.quit();
});和由于FTPimp.put()将文件名传递给回调函数,因此您的日志也会更简单一些:)
https://stackoverflow.com/questions/12163359
复制相似问题