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-களின் கீழ் ஸ்ட்ரீம் பயன்படுத்தப்பட்டு எழுதப்பட்டது என்பதே, அது எதிர்பார்க்கப்பட்ட வெளியீடு அல்லது ஆவணம் என்பது அல்ல. தோல்வி அல்லது ரத்தின் போது, தேர்ந்தெடுத்த மீண்டும் தொடக்கக் கொள்கையின்படி பகுதிக் கோப்பை வைத்திருங்கள் அல்லது நீக்குங்கள். ரத்துசெய் சமிக்ஞை தொடர்புடைய கோரிக்கையையும் ஸ்ட்ரீம் செயல்பாடுகளையும் நிறுத்தலாம்; ஆனால் வெளியீட்டுடன் பயன்பாடு என்ன செய்ய வேண்டும் என்பதை அது முடிவு செய்யாது.

தொடர்புடைய கட்டுரைகள்