我正在使用節點和node-ftp模塊。我需要上傳兩個文件到另一個服務器,我可以上傳一個文件,但是當我嘗試上傳兩個文件時,它會拋出錯誤。根據他們的API無法使用FTPClient node.js模塊上傳兩個或更多文件
,這是發送一個文件
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();
});
});
你的代碼是兩個文件同時上傳了這是不是FTP支持一個連接。嘗試在第一個回調中放置第二個'conn.put'。 – JohnnyHK
我剛剛嘗試了你的建議,這很有道理,所以我將})從第一次回調後第二次回調,它上傳第一個文件,但似乎沒有在第二次運行下一個conn.put想法?我發佈了我上面嘗試過的代碼。 –
你不覺得知道拋出哪個錯誤是有道理的嗎? (在你的回調函數中使用'if(e)console.error(e);')。在第一次文件上傳之後(聽取適當的事件),還要確保連接沒有關閉/錯誤/結束/等等。如果操作不可用,'put'也立即返回'false'。 – elmigranto