Axios responseType: 'stream' ഉപയോഗിച്ച് ഒരു Node അഭ്യർത്ഥന പരിഹരിക്കുമ്പോൾ ബോഡി ഉപയോഗിക്കാൻ തയ്യാറാണ്. എന്നാൽ ഫയൽ ഇതുവരെ പൂർത്തിയായിട്ടില്ല. അതിന്റെ ലക്ഷ്യത്തിലേക്കുള്ള കൈമാറ്റത്തിനായി കാത്തിരിക്കുക:

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-കൾക്ക് കീഴിൽ സ്ട്രീം ഉപയോഗിക്കപ്പെട്ടു എഴുതപ്പെട്ടു എന്നാണ്, അതല്ലാതെ അത് പ്രതീക്ഷിച്ച റിലീസോ രേഖയോ എന്നല്ല. പരാജയമോ റദ്ദാക്കലോ ഉണ്ടായാൽ, തിരഞ്ഞെടുത്ത പുനരാരംഭ നയം അനുസരിച്ച് ഭാഗിക ഫയൽ സൂക്ഷിക്കുകയോ നീക്കം ചെയ്യുകയോ ചെയ്യുക. റദ്ദാക്കൽ സിഗ്നലിന് ബന്ധപ്പെട്ട അഭ്യർത്ഥനയും സ്ട്രീം പ്രവർത്തനങ്ങളും നിർത്താം; എന്നാൽ ഔട്ട്പുട്ടുമായി ആപ്ലിക്കേഷൻ എന്ത് ചെയ്യണമെന്ന് അത് തീരുമാനിക്കുന്നില്ല.

അനുബന്ധ ലേഖനങ്ങൾ