【发布时间】:2014-09-19 11:27:36
【问题描述】:
当用户在我的 node.js 服务器上上传文件时,我需要将相同的文件上传到另一台服务器。
我想知道是否可以开始将上传的部分发送到第二台服务器,而无需等待文件已完全上传到我的 node.js 服务器上。
我正在使用请求模块https://github.com/mikeal/request 上传到第二台服务器。
下面的代码会等到用户完成上传后再开始第二次上传(尽管我对此不是 100% 确定):
app.post('/upload', function(req, res, next){
fs.readFile(req.files.file.path, function (err, data) {
var newName = moment().format('YYYYMMDDHHmmss') + "_" + (Math.floor(Math.random() * (10000 - 0) + 0));
var name = newName + "." + req.files.file.extension;
var newPath = "public/uploads/"+name;
fs.writeFile(newPath, data, function (err) {
if (err) {
throw err;
res.send("error");
}
fs.unlink(req.files.file.path, function (err) {
if (err) response.errors.push("Erorr : " + err);
console.log('successfully deleted temp file : '+ req.files.file.path );
});
var uploadurl = "http://second.server.com/upload;
var r = request.post(uploadurl, function optionalCallback (err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log('Upload successful! Server responded with:', body);
});
var form = r.form();
form.append('file', fs.createReadStream(newPath));
res.send(newPath);
});
});
});
【问题讨论】:
标签: node.js file-upload request