Curl AWS API网关从正文中删除换行符

Curl AWS API网关从正文中删除换行符,curl,Curl,我的身体映射定义为: { "csv": "$input.body", "p1": false, "p2": "p3", "p3": "p4" } 使用 curl 'https://xxxxx.execute-api.us-west-2.amazonaws.com/prod/xxx?p3=aaa&p4=bbb' \ -XPOST -H "Content-Type: application/csv" -d @input.csv { "csv":

我的身体映射定义为:

{
    "csv": "$input.body",
    "p1": false,
    "p2": "p3",
    "p3": "p4"
}
使用

curl 'https://xxxxx.execute-api.us-west-2.amazonaws.com/prod/xxx?p3=aaa&p4=bbb' \
-XPOST -H "Content-Type: application/csv"  -d @input.csv
{
    "csv": "l1c1,l1c2l2c1,l2c2l3c1,l3c2",
    "p1": false,
    "p2": "p3",
    "p3": "p4"
}
其中input.csv包含

l1c1,l1c2
l2c1,l2c2
l3c1,l3c2
将以调用lambda函数结束

curl 'https://xxxxx.execute-api.us-west-2.amazonaws.com/prod/xxx?p3=aaa&p4=bbb' \
-XPOST -H "Content-Type: application/csv"  -d @input.csv
{
    "csv": "l1c1,l1c2l2c1,l2c2l3c1,l3c2",
    "p1": false,
    "p2": "p3",
    "p3": "p4"
}
有没有办法不从正文中删除换行符$input.body应根据此处的文档评估为“原始有效负载”

还尝试使用$util.escapeJavaScript($input.body),但没有任何区别

解码$util.base64Encode($input.body)也会删除换行符

谢谢,

来自curl's:

因此,从名为“foobar”的文件发布数据将使用--data@foobar完成。当--data被告知从这样的文件中读取时,回车符和换行符将被删除

另请参见:

结果是--data或-d以URL编码的形式发送数据,从而去掉新行--在我的例子中,数据二进制是发送文件的正确方式