Скачать файл на диск с помощью axios
Есть ссылка вида
https://api.telegram.org/file/bot<token>/photos/filename.jpg
При переходе по ней браузер открывает окно, где нужно сохранить файл. Ссылка кратковременная, поэтому мне нужно перейти по ней и скачать файл себе на комп. В конкретную папку например. И все это нужно делать в боте, автоматически. Т.е. нужно каким-то образом настроить запрос GET, который будет скачивать файл по ссылке в указанную папку.
Я слышал, что это можно сделать с помощью axios, но решения найти не могу.
Ответы (1 шт):
Автор решения: nörbörnën
→ Ссылка
const fs = require('fs');
const stream = require('stream/promises');
const { default: axios } = require('axios');
(async () => {
const { data } = await axios.get(
'https://api.telegram.org/file/bot/photos/filename.jpg',
{ responseType: 'stream' },
);
const writeStream = fs.createWriteStream(
path.join(__dirname, './filename.jpg')
);
await stream.pipeline(data, writeStream).catch(console.error);
})();
Другие способы дождаться окончания записи я написал тут.
Имя файла можно извлечь вызовом path.basename.