Отправьте zip-файл как ответ в IBM Cloud Function - PullRequest
0 голосов
/ 01 октября 2019

У меня есть функция без сервера, развернутая в IBM Cloud Functions. Функция генерирует и загружает файл Excel.

Локально работает как положено, но в развернутой версии я получаю следующую ошибку:

{
  "code": "xxxxxxxxxx",
  "error": "Response type in header did not match generated content type."
}

С заголовком Content-Type 'application/json'Я могу отправить JSON и 'image/png' даже изображения в качестве base64. Zip файлы не работают. Я пробовал с 'Content-Type': 'application/zip и 'Content-Type': 'application/zip, application/octet-stream

Нужно ли мне выполнить дополнительную настройку?

Полный пример:

headers: {
    'Content-Type': 'application/zip',
    'Content-Disposition': `attachment; filename=foo.zip;`,
    'Content-Transfer-Encoding': 'binary',
    'Content-Length': zip.length
},

1 Ответ

0 голосов
/ 01 октября 2019

Я исправил это, сгенерировав z64 base64 вместо uint8array.

До:

var JSZip = require("jszip");
var zip = new JSZip();

const myZip = await zip.generateAsync({
                type: 'uint8array',
                base64: true,
                compression: 'DEFLATE'
            });

После:

var JSZip = require("jszip");
var zip = new JSZip();

const myZip = await zip.generateAsync({type: 'base64'});
...