Axios نے اسٹریم واپس کی۔ فائل ابھی لکھی جا رہی ہے۔
Node میں Axios کے ساتھ SOCKS ایجنٹ کے ذریعے ڈاؤن لوڈ کرتے وقت نیٹ ورک سے پڑھنے اور منزل پر لکھنے دونوں کا انتظار کریں۔
جب Axios کسی Node درخواست کو responseType: 'stream' کے ساتھ حل کرتا ہے تو باڈی استعمال کے لیے تیار ہوتی ہے۔ تاہم فائل ابھی مکمل نہیں ہوئی۔ اس کی منزل کی طرف منتقلی کا انتظار کریں:
import { createWriteStream } from 'node:fs';
import { pipeline } from 'node:stream/promises';
const response = await client.get(url, { responseType: 'stream' });
await pipeline(response.data, createWriteStream(partPath));یہ پہلے سے ترتیب دیا گیا کلائنٹ استعمال کرتا ہے۔ اس کے اڈاپٹر کو منتخب پراکسی یا SOCKS ایجنٹ کی حمایت کرنی چاہیے؛ Axios کا بلٹ اِن HTTP پراکسی آپشن اور SOCKS ایجنٹ الگ الگ میکانزم ہیں۔ URL، وقتی حدود اور منسوخی کی پالیسی ایپلیکیشن فراہم کرتی ہے۔
اس عمل کی ملکیت والا عارضی راستہ استعمال کریں۔ رائٹ اسٹریم بنانے سے پہلے طے کریں کہ ٹکراؤ کیسے سنبھالے جائیں، تاکہ ناکامی کے بعد صفائی کسی اور کی فائل نہ ہٹا دے۔ جان بوجھ کر دوبارہ شروع کرنے کے لیے اپنی الگ پالیسی درکار ہے۔
pipeline پڑھنے اور لکھنے میں توازن رکھتا ہے اور ان کی ناکامی کی اطلاع دیتا ہے۔ response.data.pipe(file) کال کر کے فوراً کامیابی لاگ کرنا اس تکمیل کے مقام کو چھوڑ دیتا ہے۔ درست HTTP جواب آنے کے بعد بھی نیٹ ورک میں خلل یا ڈسک بھر جانا ہو سکتا ہے؛ جواب کا سیاق اور وہ خرابی محفوظ رکھیں جس نے پروسیسنگ روکی۔
متوقع پروسیسنگ کامیاب ہونے کے بعد، ایپلیکیشن کی آرٹیفیکٹ جانچ انجام دیں اور پھر حتمی نام شائع کریں۔ تکمیل کا مطلب یہ ہے کہ اسٹریم ان API کے تحت استعمال اور تحریر ہوئی، نہ یہ کہ یہ متوقع ریلیز یا دستاویز ہے۔ ناکامی یا منسوخی پر، منتخب کردہ دوبارہ شروعات کی پالیسی کے مطابق جزوی فائل رکھیں یا ہٹا دیں۔ منسوخی کا سگنل متعلقہ درخواست اور اسٹریم کارروائیاں روک سکتا ہے؛ مگر یہ طے نہیں کرتا کہ ایپلیکیشن آؤٹ پٹ کے ساتھ کیا کرے۔