API Gateway - загрузка лямбда-функции pkpass file (Wallet Pass) Nodejs - PullRequest
0 голосов
/ 05 ноября 2019

Я создал шлюз API, который запускает лямбда-функцию. Эта лямбда-функция генерирует файл pkpass (проход Apple Wallet). Я использовал nodejs для его реализации. Файл корректно загружается из браузера на мой телефон Android и открывается в аналогичном приложении для пропусков, но в iphone этого не происходит. Тип содержимого для ответа «application / vnd.apple.pkpass», как я прочитал в документации Apple для Apple Wallet. Кто-нибудь знает способ обойти эту проблему? В Safari и Chrome появляется сообщение об ошибке после запуска этой службы. Я также прочитал, что вышеуказанный тип контента не совместим с шлюзом aws api, но эти ответы устарели.

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

Я знаю, что этот вопрос задавался в прошлом, и я сожалею, но я исследовал много дней на многих сайтах, но нетудачи.

Для создания файла pkpass я использую модуль passbook npm, этот файл записывается в папку tmp, а затем я читаю его, поэтому могу предоставить следующий ответ

 fs.readFile('/tmp/mypass.pkpass', (err, data) => {
            console.log('Reading file...');
            if (err) {
                console.error(err);
                reject(err);
            }
            else {
                console.log(data);
                resolve({
                    isBase64Encoded: true,
                    statusCode: 200,
                    headers: {
                        "Content-Type": "application/vnd.apple.pkpass",
                        "Content-Disposition": "attachment; filename=\"pass.pkpass\"",
                        "Content-Transfer-Encoding": "binary",
                        "Content-Description": "File Transfer"
                    },
                    body: data.toString('base64')
                });
            }
        });
...