所以我正在玩RabbitMQ并为消费者使用节点,我试图从远程服务器上取下一个图像文件,只要我使用'./'作为目的地,这种方法就可以正常工作我用'c:\ images'之类的东西炸弹:
{ [Error: EISDIR, open 'C:\images'] errno: 28, code: 'EISDIR', path: 'C:\\images' }
我也使用了'\ images',结果相同
user.moveImage.js:
var amqp = require('amqp'),
cxn = require('./cxn.js'),
env = require('./env.js'),
argv = require('optimist').argv,
fs = require('fs'),
client = require('scp2');
var path = env.local.path;
if(argv.env != undefined) {
path = env[argv.env].path
} else {
console.log('Undefined or invalid environment, using local');
}
var connection = amqp.createConnection({ url: cxn.connectionUrl() });
// Wait for connection to become established.
connection.on('ready', function () {
// Use the default 'amq.topic' exchange
connection.queue('user.image.move', {
durable: true,
autoDelete: false
},function(q){
// Catch all messages
q.bind('#');
// Receive messages
q.subscribe(function (message) {
console.log(message);
//scp the file from the remote to the local imagePath
fs.readdir(env.local.imagePath,function(err, files){
console.log(files);
});
client.scp({
host: message.host,
username: '#######',
password: '#################',
path: message.webroot + message.image_url
}, env.local.imagePath, function(err) {console.log(err)})
});
});
});
connection.on('error',function(e){
console.log(e);
})
env.js:
var local =
path: 'C:\\Users\\ian\\Documents\\sites\\townspot\\app\\webroot',
mediaPath: 'C:\\media',
imagePath: 'c:\\images'
}
exports.local = local;
答案 0 :(得分:8)