Axios החזיר זרם. הקובץ עדיין נכתב.
המתינו גם לקריאה מהרשת וגם לכתיבה אל היעד כאשר מורידים דרך סוכן SOCKS עם Axios ב-Node.
כאשר 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 שנבחר; אפשרות פרוקסי ה-HTTP המובנית של Axios וסוכן SOCKS הם מנגנונים נפרדים. היישום מספק את כתובת ה-URL, פסקי הזמן ומדיניות הביטול.
השתמשו בנתיב זמני שבבעלות הפעולה הזו. החליטו כיצד לטפל בהתנגשויות לפני יצירת זרם הכתיבה, כדי שניקוי לאחר כשל לא יסיר קובץ של מישהו אחר. המשך מכוון זקוק למדיניות משלו.
pipeline מתאם בין קריאה לכתיבה ומדווח על כשל שלהן. קריאה ל-response.data.pipe(file) ותיעוד הצלחה מיד מדלגים על נקודת ההשלמה הזו. הפסקת רשת או דיסק מלא יכולים להתרחש לאחר שהתקבלה תגובת HTTP תקינה; שמרו את הקשר התגובה ואת השגיאה שעצרה את העיבוד.
לאחר שהעיבוד המצופה יצליח, בצעו את בדיקות התוצר של היישום ואז פרסמו את השם הסופי. השלמה פירושה שהזרם נצרך ונכתב במסגרת ה-API האלה, ולא שזהו המהדורה או המסמך המצופים. בכשל או בביטול, שמרו או הסירו את הקובץ החלקי לפי מדיניות ההמשך שנבחרה. אות ביטול יכול לעצור את הבקשה ואת פעולות הזרם הרלוונטיות; הוא אינו קובע מה היישום צריך לעשות עם הפלט.