Express应用本地正常,经AWS API Gateway+ECS后报InvalidImageFormatException
3. **排除Docker问题**:本地运行Docker镜像测试正常,排除镜像打包环节的问题。 4. **定位API Gateway**:跳过API Gateway,用ALB直接连接ECS服务后功能完全正常,确定问题根源在API Gateway的配置上。 ## 问题原因与解决方案 AWS API Gateway默认会对二进制数据进行Base64编码,导致后端收到的不是原始图片二进制内容,而是编码后的错误数据,进而引发Rekognition的格式校验失败。需要调整以下配置: ### 1. 启用二进制媒体类型 - 登录AWS API Gateway控制台,选择目标API - 进入「设置」页面,在「二进制媒体类型」中添加`image/png`、`image/jpeg`、`image/jpg` - 保存配置后重新部署API ### 2. 配置集成请求的内容处理 - 找到`/profile_image`的POST方法,进入「集成请求」设置 - 将「内容处理」设置为`CONVERT_TO_BINARY`,确保API Gateway直接传递原始二进制数据到ECS后端 - 同步检查「集成响应」的内容处理配置,避免返回数据时出现编码错误 ### 3. 确保请求头匹配 - 测试时确保Postman发送的请求`Content-Type`头与图片类型一致(如`image/png`),API Gateway会根据该头识别二进制数据并应用对应处理规则 完成以上配置后,API Gateway即可正确传递原始图片二进制数据到Express后端,Rekognition也能正常处理图片对比请求。 内容的提问来源于stack exchange,提问作者Ahmet yazıcı
相关产品推荐
相关产品推荐

