Получить изображение и отправить его с помощью koa2 - PullRequest
0 голосов
/ 24 марта 2020

Я пытаюсь получить изображение с внешнего URL-адреса и затем отправить его в качестве ответа в koa2. Для получения изображения я использую библиотеку Ax ios.

Я пытаюсь сделать это следующим образом:

router.get('/get-image', async (ctx, next) => {
    const {authToken} = ctx.query
    const response = await axiosInstance.get(
        'https://www.someurl.com/image/992',
        {
            headers: {
                Authorization: `Bearer ${authToken}`,
            },
        }
    )

    ctx.type = 'image/jpeg'
    ctx.body = response.data
})

Но изображение, полученное по этому запросу, недействительно. Это показывает только пустой прямоугольник).

Может ли кто-нибудь указать мне в правильном направлении, как отправить полученное изображение?

1 Ответ

1 голос
/ 27 марта 2020

Set responseType: 'stream'. 'arraybuffer' тоже работает, но 'stream' еще лучше, так как вы просто проходите через байты.

По умолчанию я считаю, что ax ios декодирует в строку utf-8, что, конечно, бессмысленно для двоичных данных изображения.

const response = await axios.get(url, {
  responseType: 'stream',
  ...
})
...