Kur Axios zgjidh një kërkesë Node me responseType: 'stream', trupi është gati për t'u konsumuar. Skedari megjithatë nuk është i plotë. Prisni transferimin në destinacionin e tij:

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

Kjo përdor një klient të konfiguruar më parë. Përshtatësi i tij duhet të mbështesë proxy-n ose agjentin SOCKS të zgjedhur; opsioni i integruar i proxy HTTP në Axios dhe një agjent SOCKS janë mekanizma të ndryshëm. Aplikacioni siguron URL-në, afatet kohore dhe politikën e anulimit.

Përdorni një shteg të përkohshëm që i përket këtij operacioni. Vendosni si t'i trajtoni përplasjet para se të krijoni rrjedhën e shkrimit, që pastrimi pas dështimit të mos heqë skedarin e dikujt tjetër. Rifillimi i qëllimshëm kërkon politikën e vet.

pipeline koordinon leximin dhe shkrimin dhe raporton dështimin e tyre. Thirrja e response.data.pipe(file) dhe regjistrimi i suksesit menjëherë anashkalon atë pikë përfundimi. Një ndërprerje rrjeti ose një disk i plotë mund të ndodhë pasi ka mbërritur një përgjigje e vlefshme HTTP; ruani kontekstin e përgjigjes dhe gabimin që ndaloi përpunimin.

Pasi përpunimi i pritur të ketë sukses, kryeni kontrollet e artefaktit të aplikacionit dhe më pas publikoni emrin përfundimtar. Përfundimi do të thotë që rrjedha u konsumua dhe u shkrua sipas këtyre API-ve, jo se është versioni ose dokumenti i pritur. Në rast dështimi ose anulimi, mbani ose hiqni skedarin e pjesshëm sipas politikës së rifillimit të zgjedhur. Një sinjal anulimi mund të ndalojë kërkesën dhe operacionet e rrjedhës përkatëse; nuk vendos çfarë duhet të bëjë aplikacioni me daljen.

Artikuj të ngjashëm