Saglabājiet bināras attēlu atbildes Node.js starpniekā
Pārsūtiet binārus saturus caur Node tiešo starpnieku un atstājiet teksta atkodēšanu tikai apzinātām teksta transformācijām.
const { pipeline } = require('node:stream');
pipeline(upstreamResponse, clientResponse, (error) => {
if (error) console.error('Proxy response failed:', error);
});
Izmantojiet šo satura ceļu pēc mērķa izvēles, pieprasījuma uz avotu un lejupstraumes statusa un galveņu sagatavošanas. Node straumes parasti piegādā Buffer; neuzkrājiet tos virknē attēliem vai citam nemainītam bināram saturam.
pipeline koordinē pretspiedienu un izplata kļūdas. Kļūdas gadījumā tas var iznīcināt mērķi, tāpēc nepieņemiet, ka pēc tam var nosūtīt vēl vienu HTTP kļūdas atbildi. Šis fragments nav pilnīgs starpniekserveris.
Caurejošiem baitiem saglabājiet attiecīgos attēlojuma metadatus, piemēram, medija tipu un satura kodējumu, un apstrādājiet hopam raksturīgos laukus ar pārsūtīšanas noteikumiem. gzip baitu un atbilstošo atbildes galveņu salīdzinājums parāda izvēli starp kodētu un atkodētu attēlojumu.
Apzinātai HTML pārrakstīšanai vajadzīgs cits ceļš: atpazīstiet medija tipu, apstrādājiet saspiešanu un rakstzīmju kopu, pārveidojiet tekstu un ģenerējiet metadatus jaunajiem baitiem. Vecais Content-Length nevar aprakstīt mainītu saturu.
Buffer.concat var saglabāt bināru saturu, ja nepieciešama pilnīga buferēšana, bet glabā visu saturu atmiņā. Caurejošai attēla straumei šīs izmaksas nav vajadzīgas.