我想首先将图像文件下载到服务器,然后将此文件上传到其他服务器。
如果没有download file step
,那将非常简单
var fs = require('fs');
var path = '/tmp/test.png';
var formData = {
method: POST,
url: 'http://127.0.0.1:3000',
json: true,
formData :{file: fs.createReadStream(path)}
};
request(formData, function(err, res, body){
console.log("successful");
});
但是,对于download image file
;
我不想先通过request('http://google.com/doodle.png').pipe(fs.createWriteStream('doodle.png'))
这样的格式保存文件。然后重复fs.createReadStream
。
有什么方法可以获取文件流,所以我可以直接使用文件流构成formData
;
答案 0 :(得分:1)
这对我有用:
var fs = require('fs');
var request = require('request');
var formData = {
method : 'POST',
url : 'http://127.0.0.1:3000',
json : true,
formData : { file : request(downloadUrl) }
};
request(formData, function(err, res, body){
if (err) throw err;
console.log("successful");
});
答案 1 :(得分:1)
在request
文档之后,您可以使用
request.get(sourceUrl).pipe(request.post(targetUrl))
在此方案中,数据将从sourceUrl流向targetUrl,但不需要保存在服务器上的临时文件中。