Node.js + Wunsch - speichern Sie eine remote-Datei-und servieren es in einer Antwort

Verstehe ich, wie laden Sie eine remote-Datei mit Node.js + Anfrage, und ich kann dann Lesen und wieder das png-binary-blob. Gibt es einen eleganten Weg, es zu tun mit einer Anfrage (oder auch nur einen one-liner)

etwas wie:

http.createServer(function(req, res) {
    res.writeHead(200, {
        'Content-Type': 'image/png'
    });
    var picWrite = fs.createWriteStream(local);
    var picFetch = fs.createReadStream(local);
    picStream.on('close', function() {
        console.log("file loaded");
    });
    request(remote).pipe(picWrite).pipe(picFetch).pipe(res);
})

Klar sein: mein Ziel ist es, laden Sie eine remote-Datei von einem CDN, cache lokal auf den server und dann wieder die Datei in der ursprünglichen Anfrage. In Zukunft Wünsche ich verwenden fs.exists() zu prüfen, es existiert zuerst.


Dies ist meine bisher beste Rolle:

http.createServer(function(req, res) {
    var file = fs.createWriteStream(local);
    request.get(remote).pipe(file).on('close', function() {
        res.end(fs.readFileSync(local), 'binary');
    });
})
  • ja, genau das.
  • jede http-Anfrage - ich brauche es zum Aufbau eines lokalen cache aus einer remote-Quelle.
InformationsquelleAutor sidonaldson | 2013-10-08
Schreibe einen Kommentar