Как преобразовывается мой файл формданных? - PullRequest
0 голосов
/ 14 февраля 2019

У меня проблема с моей реализацией AWS.Я посылаю ему формданные, которые проходят через шлюз, используя Lambda Proxy integration, а затем вводят лямбда-код JavaScript.Когда я регистрирую

Когда я регистрирую содержимое, переданное в мой обработчик, данные формы выглядят так:

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 для извлечения файла и передачи его в метод, но он передает его, в той же кодировке, из которой он получен.

для полноты мой обработчик 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);
    });
},

Я не уверен, является ли это проблемой с данными, преобразуемыми шлюзом, или я просто не знаю, как правильно обрабатывать их в лямбде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...