Axios ສົ່ງຄືນ stream. ໄຟລ໌ຍັງຖືກຂຽນຢູ່.
ລໍຖ້າທັງການອ່ານຈາກເຄືອຂ່າຍ ແລະ ການຂຽນໄປຫາປາຍທາງ ເມື່ອດາວໂຫຼດຜ່ານ SOCKS agent ດ້ວຍ Axios ໃນ Node.
ເມື່ອ Axios ແກ້ໄຂຄຳຮ້ອງ Node ດ້ວຍ responseType: 'stream', ໂຕ body ພ້ອມທີ່ຈະນຳໃຊ້. ແຕ່ໄຟລ໌ຍັງບໍ່ສຳເລັດ. ລໍຖ້າການຍ້າຍໄປຫາປາຍທາງຂອງມັນ:
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));ອັນນີ້ໃຊ້ client ທີ່ຕັ້ງຄ່າແລ້ວ. adapter ຂອງມັນຕ້ອງຮອງຮັບ proxy ຫຼື SOCKS agent ທີ່ເລືອກ; ຕົວເລືອກ HTTP proxy ທີ່ມີໃນ Axios ແລະ SOCKS agent ເປັນກົນໄກແຍກກັນ. ແອັບຯເປັນຜູ້ໃຫ້ URL, ເວລາຈຳກັດ ແລະ ນະໂຍບາຍການຍົກເລີກ.
ໃຊ້ເສັ້ນທາງຊົ່ວຄາວທີ່ເປັນຂອງການດຳເນີນການນີ້. ຕັດສິນໃຈວິທີຈັດການການຊົນກັນ ກ່ອນສ້າງ stream ຂຽນ, ເພື່ອວ່າການເກັບກວາດຫຼັງຈາກລົ້ມເຫລວຈະບໍ່ລຶບໄຟລ໌ຂອງຄົນອື່ນ. ການສືບຕໍ່ໂດຍເຈດຕະນາຕ້ອງມີນະໂຍບາຍຂອງຕົນເອງ.
pipeline ປະສານງານການອ່ານ ແລະ ການຂຽນ ແລະ ລາຍງານຄວາມລົ້ມເຫລວຂອງພວກມັນ. ການເອີ້ນ response.data.pipe(file) ແລ້ວບັນທຶກຄວາມສຳເລັດທັນທີ ຂ້າມຈຸດສຳເລັດນັ້ນໄປ. ການຂາດການເຊື່ອມຕໍ່ ຫຼື ດິສທີ່ເຕັມ ສາມາດເກີດຂຶ້ນໄດ້ຫຼັງຈາກໄດ້ຮັບການຕອບສະໜອງ HTTP ທີ່ຖືກຕ້ອງແລ້ວ; ເກັບບໍລິບົດຂອງການຕອບສະໜອງ ແລະ ຂໍ້ຜິດພາດທີ່ເຮັດໃຫ້ການປະມວນຜົນຢຸດ.
ຫຼັງຈາກການປະມວນຜົນທີ່ລໍຖ້າສຳເລັດແລ້ວ, ໃຫ້ເຮັດ ການກວດສອບ artifact ຂອງແອັບຯ ແລ້ວຈຶ່ງເຜີຍແຜ່ຊື່ສຸດທ້າຍ. ການສຳເລັດໝາຍຄວາມວ່າ stream ຖືກນຳໃຊ້ ແລະ ຂຽນພາຍໃຕ້ API ເຫຼົ່ານີ້, ບໍ່ແມ່ນວ່າມັນເປັນສະບັບ ຫຼື ເອກະສານທີ່ຄາດໝາຍ. ເມື່ອລົ້ມເຫລວ ຫຼື ຍົກເລີກ, ເກັບ ຫຼື ລຶບໄຟລ໌ບາງສ່ວນ ຕາມນະໂຍບາຍການສືບຕໍ່ທີ່ເລືອກ. ສັນຍານຍົກເລີກສາມາດຢຸດຄຳຮ້ອງ ແລະ ການດຳເນີນການ stream ທີ່ກ່ຽວຂ້ອງ; ມັນບໍ່ໄດ້ຕັດສິນວ່າແອັບຯຄວນເຮັດຫຍັງກັບຜົນລັບ.