繁体   English   中英

配置 aws lambda 和 api 网关以返回图像/avif 内容类型的二进制数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM