Axios Node so'rovini responseType: 'stream' bilan hal qilganda, tana ishlatishga tayyor bo'ladi. Ammo fayl hali tugallanmagan. Uning manziliga ko'chirilishini kuting:

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));

Bu allaqachon sozlangan klientdan foydalanadi. Uning adapteri tanlangan proksi yoki SOCKS agentini qo'llab-quvvatlashi kerak; Axios'ning ichki HTTP proksi opsiyasi va SOCKS agenti alohida mexanizmlar. URL, vaqt cheklovlari va bekor qilish siyosatini ilova taqdim etadi.

Ushbu amalga tegishli vaqtinchalik yo'ldan foydalaning. Yozish oqimini yaratishdan oldin to'qnashuvlarni qanday hal qilishni belgilang, shunda muvaffaqiyatsizlikdan keyingi tozalash birovning faylini o'chirmaydi. Qasddan davom ettirish o'z siyosatini talab qiladi.

pipeline o'qish va yozishni muvofiqlashtiradi va ularning muvaffaqiyatsizligi haqida xabar beradi. response.data.pipe(file) ni chaqirib, darhol muvaffaqiyatni jurnalga yozish o'sha tugatish nuqtasini o'tkazib yuboradi. To'g'ri HTTP javobi kelgandan keyin ham tarmoq uzilishi yoki disk to'lishi mumkin; javob kontekstini va ishlov berishni to'xtatgan xatoni saqlang.

Kutilgan ishlov berish muvaffaqiyatli tugagach, ilovaning artefakt tekshiruvlarini bajaring va keyin yakuniy nomni e'lon qiling. Tugatish oqim ushbu API'lar doirasida iste'mol qilinib yozilganini bildiradi, bu kutilgan nashr yoki hujjat degani emas. Muvaffaqiyatsizlik yoki bekor qilishda tanlangan davom ettirish siyosatiga muvofiq qisman faylni saqlang yoki o'chiring. Bekor qilish signali tegishli so'rovni va oqim amallarini to'xtatishi mumkin; u ilova chiqish bilan nima qilishi kerakligini hal qilmaydi.

O'xshash maqolalar