fbpx

Как скачать картинку по ссылке на NodeJS

1 минута чтения

Накостылял ещё один велосипед для тех, кто не хочет юзать сторонние либы для задачи по скачиванию картинки по урлу, накостылял ещё один велосипед. Суть проста: передаешь урл изображения в YOUR_URL, далее идет скачивание и в случае если скачался JPG или PNG отдаётся blob.

import http from 'http'
import https from 'https'
import {Transform} from 'stream'

const IMAGE_TYPES = {
    'image/jpeg': 'ffd8ffe0',
    'image/jpg': 'ffd8ffe1',
    'image/png': '89504e47',
}

const {get} = YOUR_URL.startsWith('https') ? https : http
get(YOUR_URL).on('response', res => {
    const data = new Transform()
    res.on('data', chunk => data.push(chunk))
    res.on('end', async () => {
        const buffer = data.read()
        const bufferType = buffer.toString('hex', 0, 4)
        const [mimeType] = Object.entries(IMAGE_TYPES).find(type => type.includes(bufferType)) || []
        if (!mimeType) {
            throw 'Image must be jpeg or png'
        }
        console.log(mimeType, buffer) 
    })
}).on('error', error => {
    throw error
})

Добавить комментарий

Предыдущая статья

Перестаньте использовать let или чем бы заменить if

Следующая статья

Кнопка «Развернуть на весь экран» на CSS