在对AWS Proxy Lambda的API网关请求中,isBase64Encoded始终为false

时间:2019-07-22 17:10:23

标签: amazon-web-services aws-lambda aws-api-gateway

所以我有这个API网关,该API网关在POST上使用AWS-PROXY集成了lambda。

我的请求类如下:

public class ApiGatewayProxyRequest {
    private String resource;
    private String path;
    private String httpMethod;
    private Map<String, String> headers;
    private Map<String, String> queryStringParameters;
    private Map<String, String> pathParameters;
    private Map<String, String> stageVariables;
    private Context context;
    private String body;
    private boolean isBase64Encoded;
    ... snip
}

我正在通过POST请求发送文件的API网关,文件内容稍后可以在我的APIGatewayProxyRequest的body字段中找到,

问题是我希望二进制数据被Base64编码,而所有非二进制数据都保留原样。

因此,我在API网关的BinaryMediaTypes中添加了多个二进制类型。这些文件(正确设置Content-Type标头后)会导致文件在请求正文中正确编码为base64。

我现在遇到的问题是:尽管API网关正确地将文件编码为base64,但请求上的字段isBase64Encoded字段从不为true,但始终将其作为false接收。

知道为什么吗?根据文档,此字段应包含一个布尔标志,以指示适用的请求付款人是否为Base64编码。

https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html

谢谢

0 个答案:

没有答案