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, а не тое, што гэта чаканы выпуск ці дакумент. Пры збоі або скасаванні захавайце ці выдаліце частковы файл згодна з выбранай палітыкай узнаўлення. Сігнал скасавання можа спыніць адпаведны запыт і аперацыі патоку; ён не вырашае, што праграма павінна рабіць з вынікам.