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