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 ಗಳ ಅಡಿಯಲ್ಲಿ ಬಳಸಲ್ಪಟ್ಟು ಬರೆಯಲ್ಪಟ್ಟಿದೆ ಎಂದು, ಅದು ನಿರೀಕ್ಷಿತ ಬಿಡುಗಡೆ ಅಥವಾ ದಾಖಲೆ ಎಂದಲ್ಲ. ವೈಫಲ್ಯ ಅಥವಾ ರದ್ದತಿಯಲ್ಲಿ, ಆಯ್ಕೆ ಮಾಡಿದ ಮುಂದುವರಿಕೆ ನೀತಿಯ ಪ್ರಕಾರ ಭಾಗಶಃ ಫೈಲ್ ಇಟ್ಟುಕೊಳ್ಳಿ ಅಥವಾ ತೆಗೆಯಿರಿ. ರದ್ದತಿ ಸಂಕೇತ ಸಂಬಂಧಿತ ವಿನಂತಿ ಮತ್ತು ಸ್ಟ್ರೀಮ್ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ನಿಲ್ಲಿಸಬಹುದು; ಆದರೆ ಅಪ್ಲಿಕೇಶನ್ ಔಟ್ಪುಟ್ನೊಂದಿಗೆ ಏನು ಮಾಡಬೇಕೆಂದು ನಿರ್ಧರಿಸುವುದಿಲ್ಲ.