似乎AWS已经简化了这个过程,因此许多答案已经过时和/或过于复杂。
这就是我让 Lambda 通过 API 网关返回映像的方式,截至 2018 年 6 月:
1) 在 API 网关中,为您的 API 启用。(此设置位于“集成请求”部分,您已在其中将类型设置为 Lambda。Use Lambda Proxy integration
2) 在 API 网关 中,选择您的 API,然后单击 。在添加中。(注意:我尝试简单地添加“image / jpeg”,但似乎需要让所有这些工作都起作用)Settings
Binary Media Types
*/*
*/*
3) 请务必部署 API,否则您的更改将不会生效。(在 API 网关 中,选择您的 API,然后选择操作>部署 API)。
4) 在您的 Lambda 代码中,以 Base64 编码返回您的图像(此示例为 C# 代码):
// set the Content-type header
// set to whichever image type you're returning
var headersDic = new Dictionary<string, string>();
headersDic.Add("Content-type", "image/jpeg");
// return the response object that APIGateway requires
return new APIGatewayProxyResponse
{
StatusCode = 200,
Headers = headersDic,
// return the image in Base64 encoding
Body = Convert.ToBase64String(...your image data...),
IsBase64Encoded = true
};
做。
如果您已将 API 设置为不需要身份验证,只需在浏览器中键入 API 链接,它就会显示图像。或者将 API 链接放入标记中。例如:IMG
<img src="https://asdf.execute-api.us-east-1.amazonaws.com/live/myapi" />
注意:即使您在步骤 2 中将 设置为 ,API Gateway 仍将返回文本(如果这是您的 Lambda 返回的文本)。Binary Media Types
*/*