Aws lambda 如何使用micronaut函数aws api proxy处理多部分/表单数据文件上载
我正在使用aws api网关代理中的Aws lambda 如何使用micronaut函数aws api proxy处理多部分/表单数据文件上载,aws-lambda,aws-api-gateway,micronaut,micronaut-aws,Aws Lambda,Aws Api Gateway,Micronaut,Micronaut Aws,我正在使用aws api网关代理中的micronaut1.1.0.RC2和micronaut函数aws api proxy1.1.0.RC3,以实现Kotlin Lambda函数。micronaut aws api代理适用于除文件上载路由之外的所有api函数。类和管线定义如下所示: @Controller("/things/{id}/attachments") class AttachmentController { @Post(consumes = [MediaType.MULTIPA
micronaut
1.1.0.RC2
和micronaut函数aws api proxy
1.1.0.RC3
,以实现Kotlin Lambda函数。micronaut aws api代理适用于除文件上载路由之外的所有api函数。类和管线定义如下所示:
@Controller("/things/{id}/attachments")
class AttachmentController {
@Post(consumes = [MediaType.MULTIPART_FORM_DATA])
fun post(request: HttpRequest<Any>, id: Int, file: CompletedFileUpload): Attachment? {
...
}
}
同样,如果我在本地运行micronaut应用程序并直接点击API(没有micronaut AWS代理),它的功能会非常完美。但是,当我将其部署到AWS时,micronaut AWS代理似乎存在一个问题,无法正确解析多部分表单数据
我在API网关上将multipart/form data
设置为二进制媒体类型。我已尝试使用主micronaut文档()中描述的CompletedFileUpload
类型和StreamingFileUpload
类型,结果相同
值得一提的是,我使用AWS spark代理(AWS serverless java container spark)实现了相同的功能,并且功能正常
为了进行测试,我运行以下curl命令:
curl -X POST https://<host>/things/42/attachments -H 'content-type: multipart/form-data' -F file=@/path/to/file.png
curl-X POSThttps:///things/42/attachments -H'内容类型:多部分/表单数据'-F file=@/path/to/file.png
还有其他人在这方面运气好吗?micronaut api网关代理是否在此时不支持它?感谢您的帮助 到目前为止,这方面有什么进展吗?我也在与之抗争。不,我最终只是放弃了它,坚持使用spark java和
aws无服务器java容器spark
proxy。我也被困在这一点上,最糟糕的是我无法切换到spark proxy。有人调查过这个问题吗?是否应该向Micronaut团队强调这一点?不幸的是,对我来说也是如此。在1.2.5 Micronaut版本上。我在他们的博客上贴了一个问题,但还没有得到任何回应。。。坦率地说,我不相信我们会得到一个:)
curl -X POST https://<host>/things/42/attachments -H 'content-type: multipart/form-data' -F file=@/path/to/file.png