Axios သည် Node တောင်းဆိုချက်ကို responseType: 'stream' ဖြင့် ဖြေရှင်းသောအခါ body သည် အသုံးပြုရန် အသင့်ဖြစ်သည်။ သို့သော် ဖိုင်သည် မပြီးစီးသေးပါ။ ၎င်း၏ ဦးတည်ရာသို့ ကူးပြောင်းမှုကို စောင့်ပါ:

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));

၎င်းသည် ကြိုတင်ပြင်ဆင်ထားသော client ကို အသုံးပြုသည်။ ၎င်း၏ adapter သည် ရွေးချယ်ထားသော proxy သို့မဟုတ် SOCKS agent ကို ပံ့ပိုးရမည်; Axios ၏ ပါဝင်သော HTTP proxy ရွေးချယ်မှုနှင့် SOCKS agent သည် သီးခြား ယန္တရားများ ဖြစ်သည်။ URL၊ အချိန်ကန့်သတ်ချက်များနှင့် ပယ်ဖျက်မှု မူဝါဒကို အပလီကေးရှင်းက ပံ့ပိုးသည်။

ဤလုပ်ငန်းစဉ်ပိုင်ဆိုင်သော ယာယီလမ်းကြောင်းကို အသုံးပြုပါ။ ရေးသားမှု stream မဖန်တီးမီ ထိပ်တိုက်တွေ့မှုများကို မည်သို့ကိုင်တွယ်မည်ကို ဆုံးဖြတ်ပါ၊ သို့မှသာ မအောင်မြင်မှုနောက် ရှင်းလင်းရေးသည် အခြားသူ၏ ဖိုင်ကို မဖျက်ပါ။ ရည်ရွယ်ချက်ရှိရှိ ပြန်စခြင်းသည် ၎င်း၏ ကိုယ်ပိုင် မူဝါဒ လိုအပ်သည်။

pipeline သည် ဖတ်ခြင်းနှင့် ရေးခြင်းကို ညှိနှိုင်းပြီး ၎င်းတို့၏ မအောင်မြင်မှုကို အစီရင်ခံသည်။ response.data.pipe(file) ကို ခေါ်ပြီး ချက်ချင်း အောင်မြင်မှုကို မှတ်တမ်းတင်ခြင်းသည် ထို ပြီးစီးမှု အမှတ်ကို ကျော်သွားသည်။ တရားဝင် HTTP တုံ့ပြန်မှု ရောက်လာပြီးနောက်တွင်လည်း ကွန်ရက် ပြတ်တောက်မှု သို့မဟုတ် ဒစ်ခ် ပြည့်နေမှု ဖြစ်နိုင်သည်; တုံ့ပြန်မှု၏ အကြောင်းအရာနှင့် လုပ်ငန်းစဉ်ကို ရပ်တန့်စေခဲ့သော အမှားကို သိမ်းထားပါ။

စောင့်မျှော်နေသော လုပ်ငန်းစဉ် အောင်မြင်ပြီးနောက် အပလီကေးရှင်း၏ artefact စစ်ဆေးမှုများ ကို လုပ်ဆောင်ပြီး ထို့နောက် နောက်ဆုံးအမည်ကို ထုတ်ပြန်ပါ။ ပြီးစီးခြင်း ဆိုသည်မှာ stream သည် ဤ API များအောက်တွင် အသုံးပြုပြီး ရေးသားခံခဲ့ရခြင်း ဖြစ်သည်၊ ၎င်းသည် မျှော်လင့်ထားသော ထုတ်ဝေမှု သို့မဟုတ် စာရွက်စာတမ်း ဖြစ်သည်ဟု မဆိုလိုပါ။ မအောင်မြင်မှု သို့မဟုတ် ပယ်ဖျက်မှုတွင် ရွေးချယ်ထားသော ပြန်စမှု မူဝါဒအရ တစ်စိတ်တစ်ပိုင်း ဖိုင်ကို သိမ်းထားပါ သို့မဟုတ် ဖယ်ရှားပါ။ ပယ်ဖျက်မှု အချက်ပြသည် သက်ဆိုင်ရာ တောင်းဆိုချက်နှင့် stream လုပ်ငန်းများကို ရပ်တန့်နိုင်သည်; သို့သော် အပလီကေးရှင်းသည် output နှင့် ဘာလုပ်သင့်သည်ကို မဆုံးဖြတ်ပါ။

ဆက်စပ်ဆောင်းပါးများ