Apabila Axios menyelesaikan permintaan Node dengan responseType: 'stream', badan itu sedia untuk digunakan. Fail itu pula belum lengkap. Tunggu pemindahan ke destinasinya:

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

Ini menggunakan klien yang sudah dikonfigurasikan. Penyesuainya mesti menyokong proksi atau ejen SOCKS yang dipilih; pilihan proksi HTTP terbina dalam Axios dan ejen SOCKS ialah mekanisme berasingan. Aplikasi menyediakan URL, had masa dan dasar pembatalan.

Gunakan laluan sementara milik operasi ini. Tentukan cara mengendalikan pertembungan sebelum mencipta strim tulis, supaya pembersihan selepas kegagalan tidak memadam fail orang lain. Sambungan semula yang disengajakan memerlukan dasarnya sendiri.

pipeline menyelaraskan pembacaan dan penulisan serta melaporkan kegagalannya. Memanggil response.data.pipe(file) dan merekodkan kejayaan serta-merta melangkau titik penyiapan itu. Gangguan rangkaian atau cakera penuh boleh berlaku selepas respons HTTP yang sah tiba; simpan konteks respons dan ralat yang menghentikan pemprosesan.

Selepas pemprosesan yang ditunggu berjaya, jalankan pemeriksaan artifak aplikasi dan kemudian terbitkan nama akhir. Selesai bermakna strim telah digunakan dan ditulis di bawah API ini, bukan bahawa ia ialah keluaran atau dokumen yang dijangka. Semasa kegagalan atau pembatalan, simpan atau hapus fail separa mengikut dasar sambungan semula yang dipilih. Isyarat pembatalan boleh menghentikan permintaan dan operasi strim berkenaan; ia tidak menentukan apa yang patut dilakukan aplikasi dengan output.

Artikel berkaitan