[英]configure aws lambda and api gateway to return binary data for image/avif content-type
不乏关于使用 aws lambda 和 api 网关的二进制数据的问题和博客文章,但令人惊讶的是我一直无法找到与 AVIF 图像相关的任何内容。 这很重要,因为铬中存在 这个问题。 本质上,chrome 团队最近在其Accept
header 图像的开头添加了"image/avif"
,这导致我的端点返回图像的 base64 字符串而不是二进制数据。 如果我使用 curl 重复相同的请求并从Accept
header 中删除"image/avif"
,我将获得二进制数据。 具体来说:
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
yields base64 data (and the image is broken in the webpage)accept: image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8
产生二进制数据从 chromium 线程中的讨论来看,解决方案似乎是在Accept
header 以"image/avif"
开头时更新我的端点以响应适当的二进制数据。 然而,这对我来说很难。 我最接近的是这个答案。 我已按照这些步骤更新我的 API 网关配置,但当Accept
header 以"image/avif"
开头时,我仍然收到 base64 数据。 而且我还没有找到任何专门提到这个问题的帖子。
事实证明,我在帖子中链接到的指南包含所有必要的步骤,但 API 网关仪表板中的“保存更改”按钮实际上并未部署您的更改。 您必须 go 到Resources
> Actions
> Deploy API
才能使更改生效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.