我的formdata文件如何转换?

时间:2019-02-14 20:36:03

标签: javascript amazon-s3 aws-lambda aws-api-gateway

我的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中正确处理它。

0 个答案:

没有答案