2016-04-06 26 views
1

Garip bir konu var. NodeJs'de dosya indirme isteğini kullanıyorum ve her defasında daha büyük dosyaları (> 250mb) indirdiğimde, belleğe indiriliyorlar ve doğrudan dosya sistemine aktarılmıyorlar. Belki yanlış bir şey yapıyorum ama bir test çantası yaptım ve dosya hala akış almıyor. Eğer taskmanager ile düğüm kapak koyma izlerseniz örnek 1GB dosya indirme bu dizge `m içinde NodeJs Aktarım Dosyadan Dosya sistemine değil Hafızaya Dön

var request = require('request'); 
var fs = require('fs'); 
    var writable = fs.createWriteStream("1GB.zip"); 
    var stream = request.get({ 
     uri: "http://ipv4.download.thinkbroadband.com/1GB.zip", 
     encoding: null 
    }, function(error, response, body) { 
     console.log("code:", response.statusCode); 
     if (response.statusCode >= 500) { 
      log.err(response.statusCode, " Servererror", file.url); 
     } 
    }).pipe(writable); 

ve büyür dosyayı indirir olarak> 1GB için. benim Düğüm uygulaması değil daha Ram

+0

yardımı olabilir: http://stackoverflow.com/a/19708936/5388620 – Shanoor

cevap

2

konu 200MB daha kullandığı istediğiniz geri arama için parametrelerden biri yanıtının tamamı body olduğu için dolaylı request iç arabelleğe sağlayan bir geri arama, geçirildiğinden emin olduğunu .

response sadece yerine response etkinliğini dinleyeceğiz kullanılabilir olduğunda bilmek isterseniz:

var request = require('request'); 
var fs = require('fs'); 
var writable = fs.createWriteStream("1GB.zip"); 
var stream = request.get({ 
    uri: "http://ipv4.download.thinkbroadband.com/1GB.zip", 
    encoding: null 
}).on('response', function(response) { 
    console.log("code:", response.statusCode); 
    if (response.statusCode >= 500) { 
    log.err(response.statusCode, " Servererror", file.url); 
    } 
}).pipe(writable); 
İlgili konular