настроить 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
чтобы изменения остались живы.