Axios ले स्ट्रिम फर्कायो। फाइल अझै लेखिँदै छ।
Node मा Axios प्रयोग गरी SOCKS एजेन्टमार्फत डाउनलोड गर्दा नेटवर्क पढ्ने र गन्तव्यमा लेख्ने दुवैको प्रतीक्षा गर्नुहोस्।
जब 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 अन्तर्गत उपभोग र लेखिएको हो, यो अपेक्षित रिलिज वा कागजात हो भन्ने होइन। असफलता वा रद्दीकरणमा, छानिएको पुनःसुरु नीतिअनुसार आंशिक फाइल राख्नुहोस् वा हटाउनुहोस्। रद्दीकरण संकेतले सम्बन्धित अनुरोध र स्ट्रिम अपरेसन रोक्न सक्छ; तर अनुप्रयोगले आउटपुटसँग के गर्ने भनी यसले निर्धारण गर्दैन।