我是AWS Lambda的新手,我正在尝试实现一个Lambda函数,该函数接收包含编码为multipart/form-data的数据的POST请求.使用Lambda代理集成通过API网关接收消息,并且当主体到达Lambda函数时,主体在Base64中进行编码.手动解码后,我看到它包含如下所示的多部分体:
-----WebKitFormBoundary3EZ0C3tbP2JpAmz4
Content-Disposition: form-data; name="param1"
value1
-----WebKitFormBoundary3EZ0C3tbP2JpAmz4
Content-Disposition: form-data; name="param2"
value2
------WebKitFormBoundary3EZ0C3tbP2JpAmz4
Content-Disposition: form-data; name="myfile"; filename="ivr.png"
Content-Type: image/png
PNG
... [binary stuff]
------WebKitFormBoundary3EZ0C3tbP2JpAmz4--
Run Code Online (Sandbox Code Playgroud)
我需要的是在java 8中解析此消息,以便我可以访问各个部分.我设法使用+ javax.mail.Multipart +对象,但似乎我无法访问部件的"name"属性,因此我无法区分相同的类型元素,例如"param1"和"param2".我相信这可能与此类用于解析电子邮件的事实有关...是否有另一种方法来解析lambda函数内的这个多部分主体?这是我必须解析的代码(base64是包含正文的字符串):
DataSource source = new ByteArrayDataSource(new ByteArrayInputStream(Base64.decodeBase64(base64)), "multipart/mixed");
MimeMultipart mp = new MimeMultipart(source);
Run Code Online (Sandbox Code Playgroud)
我很感激你能提供的任何帮助.