Кога 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 одговор; сочувајте го контекстот на одговорот и грешката што ја запре обработката.

Откако очекуваната обработка ќе успее, извршете ги проверките на артефактот на апликацијата и потоа објавете го конечниот назив. Завршувањето значи дека stream-от е потрошен и запишан според овие API, а не дека тоа е очекуваното издание или документ. При неуспех или откажување, задржете ја или отстранете ја делумната датотека според избраната политика на продолжување. Сигналот за откажување може да го запре соодветното барање и операциите на текот; тој не одлучува што треба апликацијата да прави со излезот.

Поврзани статии