Как скачать архив nodejs
Стоит задача скачать архив в указанную папку на NodeJs по ссылке которая сразу начинает скачивание, подскажите пожалуйста как это сделать не используя посторонние пакеты (или используя node-fetch)
Ответы (1 шт):
Автор решения: nörbörnën
→ Ссылка
node.js v18.11.0
import fs from 'node:fs';
import { pipeline } from 'node:stream/promises';
try {
const res = await fetch('http://www.cbr.ru/s/newbik');
if (!res.ok) {
throw new Error(res.statusText || res.status);
}
const filename =
res.headers.get('content-disposition')?.split(/\s*;\s*/).find((x) => x.startsWith('filename='))?.replace(/^filename=["']?|["']$/g, '')
|| 'archive.zip';
await pipeline(
res.body,
fs.createWriteStream(filename)
);
} catch (err) {
console.error(err);
}
export {};
~/tmp/q $ ls -1
20221112ED01OSBR.zip
20221112_ED807_full.xml
В вызов pipeline можно добавить PipelineTransform и налету разархивировать загруженный архив.
Если нужен код на commonjs, можно воспользоваться моим ответом на вопрос "Скачать файл на диск с помощью axios".