Pan fydd Axios yn datrys cais Node gyda responseType: 'stream', mae'r corff yn barod i'w ddefnyddio. Nid yw'r ffeil wedi'i chwblhau eto. Arhoswch i'r trosglwyddiad gyrraedd ei gyrchfan:

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

Mae hyn yn defnyddio cleient sydd eisoes wedi'i gyflunio. Rhaid i'w addasydd gefnogi'r proxy neu'r asiant SOCKS a ddewiswyd; mae opsiwn proxy HTTP cynwysedig Axios ac asiant SOCKS yn fecanweithiau ar wahân. Y cymhwysiad sy'n darparu'r URL, yr amserau a'r polisi canslo.

Defnyddiwch lwybr dros dro sy'n eiddo i'r llawdriniaeth hon. Dewiswch sut i drin gwrthdrawiadau cyn creu'r ffrwd ysgrifennu, fel na all glanhau ar ôl methiant ddileu ffeil rhywun arall. Mae ailddechrau bwriadol angen ei bolisi ei hun.

Mae pipeline yn cydlynu darllen ac ysgrifennu ac yn adrodd eu methiant. Mae galw response.data.pipe(file) a chofnodi llwyddiant ar unwaith yn hepgor y pwynt cwblhau hwnnw. Gall ymyrraeth rhwydwaith neu ddisg llawn ddigwydd ar ôl i ymateb HTTP dilys gyrraedd; cadwch gyd-destun yr ymateb a'r gwall a stopiodd y broses.

Ar ôl i'r broses a ddisgwyliwyd lwyddo, cyflawnwch wiriadau arteffact y cymhwysiad ac yna cyhoeddwch yr enw terfynol. Mae cwblhau'n golygu bod y ffrwd wedi'i defnyddio a'i hysgrifennu o dan yr API hyn, nid mai dyma'r rhyddhau neu'r ddogfen a ddisgwyliwyd. Ar fethiant neu ganslo, cadwch neu ddilewch y ffeil rannol yn ôl y polisi ailddechrau a ddewiswyd. Gall signal canslo stopio'r cais a'r gweithrediadau ffrwd perthnasol; nid yw'n penderfynu beth ddylai'r cymhwysiad ei wneud â'r allbwn.

Erthyglau cysylltiedig