我想先下載一個鏡像文件到服務器,然後將這個文件上傳到其他服務器。如何使用請求模塊進行下載,然後上傳文件不需要中間文件
如果沒有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
;
不是已經處理文件流上傳的請求 - https://github.com/request/request#streaming; fs.createReadStream('file.json').pipe(request.put('http://example.com/obj.json')) –
@JeromeWAGNER,是的,這是處理文件上傳的步驟。我認爲'file.json'應該是一個語言環境文件。對於我的情況,我不想在服務器上保存下載文件,所以不會有文件名。期待您的其他建議。 – ryu
@ryu所以遵循提供的推理,你嘗試'request(formData).pipe(request.put(...))'? – robertklep