Я думаю, что у вас есть два варианта: вернуть строку в кодировке base64 или выполнить перенаправление на S3, содержащий ваш двоичный двоичный объект.
Ваш ответ всегда является объектом JSON, но вы можете указать тип содержимого иВы можете использовать base64 для кодирования, чтобы отправлять двоичные данные через API-шлюз.
Кодировка Base64
Не зная много о вашем коде, рассмотрите этот пример:
exports.handler = async (event) => {
const result = Buffer.from('Hello World!', 'utf8')
return {
statusCode: 200,
headers: {
'Content-Type': 'application/octet-stream'
},
body: result.toString('base64'), // SGVsbG8gV29ybGQh
isBase64Encoded: true
}
}
Вывозвращение объекта, но указание тела - это строка в кодировке base64, которую API-шлюз должен преобразовать в поток октетов.
Возможно, вам потребуется настроить API-шлюз, чтобы разрешить */*
типы носителей. Вот статья с более подробной информацией .
Перенаправление S3
Другой вариант, который будет иметь больше смысла для больших двоичных объектов, будет записывать ваши двоичные объекты вS3 в виде файлов, а затем вернуть statusCode: 302
с URL-адресом перенаправления на подписанный URL-адрес S3 .
Примерно так:
exports.handler = async (event) => {
return {
statusCode: 302,
headers: {
'Location': 'http://example.com/example.png'
}
}
}