【问题标题】:aws api gateway mapping template for binary files二进制文件的 aws api 网关映射模板
【发布时间】:2021-10-25 09:21:35
【问题描述】:

我正在尝试将二进制文件和字符串参数发送到 AWS API Gateway。

这是 API Gateway POST 上的映射模板:

{
    "imageFile" : $input.params('imageFile'),
    "purdueUsername" : $input.params('purdueUsername'),
    "description" : $input.params('description'),
    "price" : $input.params('price'),
    "longitude" : $input.params('longitude'),
    "latitude" : $input.params('latitude'),
    "category" : $input.params('category'),
}

发出 post 请求会导致:

当我尝试这个时

{
    "imageFile" : "$input.params('imageFile')",
    "purdueUsername" : "$input.params('purdueUsername')",
    "description" : "$input.params('description')",
    "price" : "$input.params('price')",
    "longitude" : "$input.params('longitude')",
    "latitude" : "$input.params('latitude')",
    "category" : "$input.params('category')",
}

我得到空参数。 api 没有接收到我通过 POST 请求发送的参数。

我应该如何更改映射模板? 注意:当我只尝试在映射模板中使用 imageFile 并且只发送没有额外参数的二进制文件时,它完全可以正常工作。

{
"imageFile" : "$input.body"
}

但是,我希望能够在二进制文件旁边发送其他参数。

【问题讨论】:

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


    【解决方案1】:

    这就是我解决问题的方法。我在 POST 请求的正文中发送二进制文件,并将其他参数作为标头发送。

    这是我放在 AWS API Gateway 上的映射模板

    {
        "purdueUsername" : "$input.params('purdueUsername')",
        "description" : "$input.params('description')",
        "price" : "$input.params('price')",
        "longitude" : "$input.params('longitude')",
        "latitude" : "$input.params('latitude')",
        "category" : "$input.params('category')",
        "isbnNumber" : "$input.params('isbnNumber')",
        "imageFile" : "$input.body"
    }
    

    【讨论】:

      猜你喜欢
      • 2019-07-11
      • 2018-07-31
      • 2017-06-24
      • 2017-11-30
      • 1970-01-01
      • 2020-09-28
      • 1970-01-01
      • 2018-12-16
      • 1970-01-01
      相关资源
      最近更新 更多