როცა 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 აგენტს; Axios-ის ჩაშენებული HTTP პროქსის ვარიანტი და SOCKS აგენტი ცალკეული მექანიზმებია. URL-ს, დროის ლიმიტებს და გაუქმების პოლიტიკას აპლიკაცია აწვდის.

გამოიყენეთ დროებითი გზა, რომელიც ამ ოპერაციას ეკუთვნის. გადაწყვიტეთ, როგორ მოიქცეთ კოლიზიებისას, სანამ ჩაწერის ნაკადს შექმნით, რათა წარუმატებლობის შემდეგ გასუფთავებამ სხვისი ფაილი არ წაშალოს. განზრახ გაგრძელებას საკუთარი პოლიტიკა სჭირდება.

pipeline კოორდინაციას უწევს კითხვასა და წერას და აცნობებს მათ წარუმატებლობას. response.data.pipe(file)-ის გამოძახება და წარმატების მყისიერი ჩაწერა გამოტოვებს ამ დასრულების წერტილს. ქსელის შეწყვეტა ან სავსე დისკი შეიძლება მოხდეს მას შემდეგ, რაც სწორი HTTP პასუხი მოვიდა; შეინახეთ პასუხის კონტექსტი და შეცდომა, რომელმაც დამუშავება შეაჩერა.

მას შემდეგ, რაც მოსალოდნელი დამუშავება წარმატებით დასრულდა, შეასრულეთ აპლიკაციის არტეფაქტის შემოწმებები და შემდეგ გამოაქვეყნეთ საბოლოო სახელი. დასრულება ნიშნავს, რომ ნაკადი მოხმარებული და ჩაწერილია ამ API-ების ფარგლებში, და არა იმას, რომ ეს არის მოსალოდნელი გამოცემა ან დოკუმენტი. წარუმატებლობის ან გაუქმებისას შეინახეთ ან წაშალეთ ნაწილობრივი ფაილი არჩეული გაგრძელების პოლიტიკის მიხედვით. გაუქმების სიგნალმა შეიძლება შეაჩეროს შესაბამისი მოთხოვნა და ნაკადის ოპერაციები; ის არ წყვეტს, რა უნდა გააკეთოს აპლიკაციამ გამოსავალთან.

დაკავშირებული სტატიები