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ዎች መሠረት ተጠቅሞ ተጽፏል ማለት ነው፣ ይህ የሚጠበቀው ልቀት ወይም ሰነድ ነው ማለት አይደለም። በውድቀት ወይም በስረዛ ጊዜ ከፊሉን ፋይል በተመረጠው የመቀጠል መመሪያ መሠረት ይያዙ ወይም ያስወግዱ። የስረዛ ምልክት ተገቢውን ጥያቄና የዥረት ሥራዎች ሊያቆም ይችላል፤ መተግበሪያው በውጤቱ ላይ ምን ማድረግ እንዳለበት ግን አይወስንም።

ተዛማጅ ጽሑፎች