کله چې 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 لاندې کارول شوی او لیکل شوی، نه دا چې دا تمه شوې خپروونه یا سند دی. د ناکامۍ یا لغوه کولو په صورت کې، د ټاکل شوې بیا پیل تګلارې له مخې جزوي فایل وساتئ یا یې لرې کړئ. د لغوه کولو سیګنال کولای شي اړوند غوښتنه او د جریان عملیات ودروي؛ خو دا نه ټاکي چې غوښتنلیک باید د وتلو سره څه وکړي.

اړوندې مقالې