使用Lambda和API网关关注此链接的说明:https://sookocheff.com/post/api/uploading-large-payloads-through-api-gateway/我有一个设置,允许我获取预签名的URL并上传文件。我已经使用CURL进行了测试,它已经有效了。
但是当我尝试发送原始字符串(csv格式或json格式)时,它失败了!
工作
的示例curl --request PUT --upload-file Testing.csv "**pre signed upload url**"
不起作用的示例
curl --request PUT -H "Content-Type: text/plain" --data "this is raw data" "**pre signed upload url**"
curl --request PUT --data "this is raw data" "**pre signed upload url**"
我拨打的电话不正确吗?我应该切换到POST吗?那么这个电话会是什么样的?
答案 0 :(得分:0)
它不是自签名网址的becoz,它是API网关设置为的内容类型的becoz,
// Exports visual data
visual.exportData(models.ExportDataType.Summarized, 100)
.then(function (data) {
Log.log(data);
})
您添加其他内容类型,它应该通过。
希望它有所帮助。
答案 1 :(得分:0)
因此解决方案是在预签名url生成期间指定内容类型,然后在CURL put命令中指定相同的内容类型。想知道答案在这里:S3 PUT doesn't work with pre-signed URL in javascript和来自@Kannaiyan的关于内容类型正确方向的指针