Node.js + request を使用してリモート ファイルをロードする方法を理解しているので、それを読み取って png バイナリ blob を返すことができます。1回のリクエスト(またはワンライナーでさえ)でそれを行うエレガントな方法はありますか
何かのようなもの:
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);
})
明確にするために、私の目的は、CDN からリモート ファイルをロードし、ローカルにサーバーにキャッシュしてから、元の要求でファイルを返すことです。将来のリクエストfs.exists()
では、最初に存在することを確認するために使用します。
これはこれまでの私の最善の努力です:
http.createServer(function(req, res) {
var file = fs.createWriteStream(local);
request.get(remote).pipe(file).on('close', function() {
res.end(fs.readFileSync(local), 'binary');
});
})