gpt4 book ai didi

node.js - 在 AWS Lambda 上将正文中的 multipart/form-data 解析为字符串

转载 作者:IT老高 更新时间:2023-10-28 23:10:09 25 4
gpt4 key购买 nike

我很高兴 see AWS 现在在 AWS Lambda 上支持 multipart/form-data,但是现在原始数据在我的 lambda 函数中,我该如何处理它?

我看到 multiparty是 Node 中用于多部分处理的一个很好的多部分库,但它的构造函数需要一个请求,而不是原始字符串。

我在 Lambda 函数上收到的输入消息(在应用正文映射模板之后)是:

{ "rawBody": "--ce0741b2-93d4-4865-a7d6-20ca51fe2689\r\nContent-Disposition: form-data; name=\"Content-Type\"\r\n\r\nmultipart/mixed; boundary=\"------------020601070403020003080006\"\r\n--ce0741b2-93d4-4865-a7d6-20ca51fe2689\r\nContent-Disposition: form-data; name=\"Date\"\r\n\r\nFri, 26 Apr 2013 11:50:29 -0700\r\n--ce0741b2-93d4-4865-a7d6-20ca51fe2689\r\nContent-Disposition: form-data; name=\"From\"\r\n\r\nBob <bob@mg.mydomain.io>\r\n--ce0741b2-93d4-4865-a7d6-20ca51fe2689\r\nContent-Disposition: form-data; name=\"In-Reply-To\"\r... 

等和一些文件数据。

我使用的 body 映射模板是

{
"rawBody" : "$util.escapeJavaScript($input.body).replaceAll("\\'", "'")"
}

如何解析这些数据以访问发布到我的 Lambda 函数的字段和文件?

最佳答案

busboy 在"file"案例中对我不起作用。它没有抛出异常,所以我根本无法在 lambda 中处理异常。

我正在使用 aws-lambda-multipart-parser lib并不像这样难。它只是从 event.body 中解析数据并将数据作为 Buffer 或文本返回。

用法:

const multipart = require('aws-lambda-multipart-parser');

const result = multipart.parse(event, spotText) // spotText === true response file will be Buffer and spotText === false: String

响应数据:

{
"file": {
"type": "file",
"filename": "lorem.txt",
"contentType": "text/plain",
"content": {
"type": "Buffer",
"data": [ ... byte array ... ]
} or String
},
"field": "value"
}

关于node.js - 在 AWS Lambda 上将正文中的 multipart/form-data 解析为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38599028/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com