настроить aws lambda и api gateway для возврата двоичных данных для типа содержимого image/avif

Нет недостатка в вопросах и сообщениях в блогах о двоичных данных с использованием aws lambda и api gateway, но, что удивительно, я не смог найти ничего, связанного с изображениями AVIF. Это важно из-за проблемы с хромом. По сути, команда Chrome недавно добавила в начало своего заголовка для изображений, и это заставило мою конечную точку возвращать строку base64 изображения, а не двоичные данные. Если я повторю тот же запрос с помощью curl и удалю из заголовка, я получу двоичные данные. Конкретно:

  • accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 дает двоичные данные
  • accept: image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8 дает данные base64 (и изображение на веб-странице повреждено)
  • accept: image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8 дает двоичные данные

Из обсуждения в потоке хрома кажется, что решение состоит в том, чтобы обновить мою конечную точку, чтобы она отвечала соответствующими двоичными данными, когда заголовок начинается с. Однако для меня это оказывается трудным. Я подошел ближе всего к этому ответу . Я выполнил эти шаги, чтобы обновить конфигурацию шлюза API, но я все еще получаю данные base64, когда Accept заголовок начинается с "image/avif". И я не нашел никаких сообщений, конкретно относящихся к этой проблеме.

1 ответ

Оказывается, в руководстве, на которое я ссылался в сообщении, были все необходимые шаги, но кнопка «Сохранить изменения» на панели управления API Gateway фактически не развертывает ваши изменения. Вы должны пойти в Resources > Actions > Deploy API чтобы изменения остались живы.

Другие вопросы по тегам