所以我有这个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
谢谢