Node.js প্ৰক্সীত বাইনেৰী ছবিৰ প্ৰতিক্ৰিয়া সংৰক্ষণ কৰক
Node ফৰৱাৰ্ড প্ৰক্সীৰ জৰিয়তে বাইনেৰী বডি প্ৰেৰণ কৰক আৰু পাঠ ডিক'ডিং কেৱল ইচ্ছাকৃত পাঠ পৰিৱৰ্তনৰ বাবে ৰাখক।
const { pipeline } = require('node:stream');
pipeline(upstreamResponse, clientResponse, (error) => {
if (error) console.error('Proxy response failed:', error);
});
লক্ষ্য নিৰ্বাচন, আপষ্ট্ৰিম অনুৰোধ আৰু ডাউনষ্ট্ৰিম স্থিতি তথা হেডাৰ প্ৰস্তুতিৰ পিছত এই বডি পথটো ব্যৱহাৰ কৰক। Node ষ্ট্ৰিমে সাধাৰণতে Buffer যোগান ধৰে; ছবি বা অন্য অপৰিৱৰ্তিত বাইনেৰী সমলৰ বাবে সেইবোৰ ষ্ট্ৰিংত জমা নকৰিব।
pipeline এ backpressure সমন্বয় কৰে আৰু বিফলতা প্ৰচাৰ কৰে। ত্ৰুটি হ'লে ই গন্তব্য ধ্বংস কৰিব পাৰে, গতিকে ইয়াৰ পিছত অন্য এটা HTTP ত্ৰুটি প্ৰতিক্ৰিয়া পঠিয়াব পাৰি বুলি নাভাবিব। এই অংশটো সম্পূৰ্ণ প্ৰক্সী ছাৰ্ভাৰ নহয়।
পাছ-থ্ৰু বাইটৰ বাবে, মিডিয়া টাইপ আৰু সমল এনক'ডিঙৰ দৰে প্ৰাসংগিক প্ৰতিনিধিত্ব মেটাডেটা সংৰক্ষণ কৰক, আৰু hop-নিৰ্দিষ্ট ফীল্ডসমূহ ফৰৱাৰ্ডিং নিয়মেৰে পৰিচালনা কৰক। gzip বাইট আৰু মিল থকা প্ৰতিক্ৰিয়া হেডাৰৰ তুলনাই এনক'ড বনাম ডিক'ড প্ৰতিনিধিত্বৰ পছন্দ দেখুৱায়।
ইচ্ছাকৃত HTML পুনৰ্লেখনৰ বাবে অন্য পথ লাগে: ইয়াৰ মিডিয়া টাইপ চিনি লওক, সংকোচন আৰু আখৰ-সংহতি পৰিচালনা কৰক, পাঠ ৰূপান্তৰ কৰক আৰু নতুন বাইটৰ বাবে মেটাডেটা সৃষ্টি কৰক। পুৰণি Content-Length এ সলনি হোৱা বডি বৰ্ণনা কৰিব নোৱাৰে।
Buffer.concat এ সম্পূৰ্ণ বাফাৰিঙৰ প্ৰয়োজন হ'লে বাইনেৰী সমল সংৰক্ষণ কৰিব পাৰে, কিন্তু গোটেই বডিটো মেমৰীত ৰাখে। পাছ-থ্ৰু ছবি ষ্ট্ৰিমে সেই খৰচৰ প্ৰয়োজন নাই।