我的AWS实施存在问题。我将表单数据发送给它,并使用Lambda Proxy integration
通过网关,然后输入我的JavaScript lambda。当我登录
当我记录传递到处理程序中的内容时,formdata如下所示:
body: '----------------------------786143169777267628398804\r\nContent-Disposition: form-data; name="channel"\r\n\r\nProduction\r\n----------------------------786143169777267628398804\r\nContent-Disposition: form-data; name="releaseDate"\r\n\r\n2019-01-30T14:19:08.997Z\r\n----------------------------786143169777267628398804\r\nContent-Disposition: form-data; name="releaseNotes"\r\n\r\nTest Release Notes\r\n----------------------------786143169777267628398804\r\nContent-Disposition: form-data; name="productLine"\r\n\r\nIO Module\r\n----------------------------786143169777267628398804\r\nContent-Disposition: form-data; name="encryption"\r\n\r\nNone\r\n----------------------------786143169777267628398804\r\nContent-Disposition: form-data; name="firmware"; filename="f0-0-11.bin"\r\nContent-Type: application/octet-stream\r\n\r\nü1¡±ÌéwhûF¸¿÷\u0010ÜÚ/˜ú›MP=K§Û¦D\u000f\'\u0005lý«\u001c‡T3äwzYûjk¦k\u0013\u0017bWÅb‚Þ\r×—ÏtOH\u0016Þ@¹¡þûÚ\u0001awuõþðSMıߛKc¼ \u001c-\u0013P>žåWp½qþ:¼®¿\u0007¡CŒìÄÕ`p\u0015¯1µûNÔ=ÄøÅK‰ôß?•\fû\u0005\u001d\u0003åA\r:@èê\f¡$<<öÔY2˜®±f\f¾×\u000e}\u0014é!]]fB½nÝò^:ÿî!ª´r’‚ã³î^\u001b‰\bGÔ¬>ˆCéÆ7ÙòWA¸>¢ØÃ\u0006ÐtîãQÆf¹›Ü‚•EVh·§\u0013ºãæÙÅè\u001a)x²Fã*ª\u0013ú\'O „$añîAÂÖ‡\u001f\u001f:r»Ø…—P95#H^Ìn«S\u001d¤\u0001\u000b»^»‹)T\u0012þ‹\u0001«\u0013P5(3.Ùýõ\u0002\u0004ŽÏÚ\u000eB7Ô+ý¡¤ø\u001fê\rÒ88ñ3\u0016&sNÖ\u0006SÝ\u0014ô/Ñle¿\'´`Û¿=x hP°A^/…[Ú)IS\u000e‡Ð.ˆ\u001d\u0016R`ÙJ\u0002x*\u00145fCن丟\u001aW̓cKÔÁæ4\u001bí£\u0000\u0018z\u0017u… (continued)
我想将其传递给s3.putObject()
方法。我使用busboy
提取文件并将其传递到方法中,但是它以与从中检索到的相同编码传递给它。
出于完整性考虑,我的服务员处理程序如下所示:
getFormData: async function (event, context) {
return new Promise(function (resolve, reject) {
const contentType = event.headers['Content-Type'] ||
event.headers['content-type'];
const bb = new busboy({
headers: {
'content-type': contentType
}
});
const response = {};
bb.on('file',
function (fieldName, file, filename, encoding, mimetype) {
file
.on('data',
data => {
response[fieldName] = data;
})
.on('end',
() => {
});
})
bb.end(event.body);
});
},
我不确定这是网关转换数据时出现的问题还是我不知道如何在lambda中正确处理它。