Шлюз AWS API base64Decode создает искаженный двоичный файл?

Я пытаюсь вернуть 1px gif из метода AWS API Gateway.

Поскольку двоичные данные теперь поддерживаются, я возвращаю изображение / gif, используя следующее отображение «Ответ интеграции»:

$util.base64Decode("R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")

Однако, когда я смотрю на это в Chrome, я вижу, что возвращается следующий двоичный файл:

Вместо:

Может ли кто-нибудь помочь мне понять, почему это искажено и неправильной длины? Или что я мог сделать, чтобы вернуть правильный двоичный файл? Есть ли что-то еще, что я всегда мог вернуть этот 1px GIF без использования функции base64Decode?

Большое спасибо заранее, это причиняет мне много боли!

РЕДАКТИРОВАТЬ

Этот становится незнакомцем. Похоже, проблема не в base64Decode, а в общей обработке двоичного кода. Я добавил лямбда-бэкэнд (ранее я использовал Firehose) послеэтот блог и этоВопрос переполнения стека, Я устанавливаю изображения как двоичныйMediaType в соответствии с этимстраница документации.

Это позволило мне передать следующий пиксель изображения / bmp из Lambda через API шлюза, и он работает правильно:

exports.handler = function(event, context) {

  var imageHex = "\x42\x4d\x3c\x00\x00\x00\x00\x00\x00\x00\x36\x00\x00\x00\x28\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x18\x00\x00\x00\x00\x00\x06\x00\x00\x00\x27\x00\x00\x00\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00";
  context.done(null, { "body":imageHex });

};

Однако следующие изображения, представляющие изображение / png или изображение / gif, искажаются при прохождении:

exports.handler = function(event, context) {

//var imageHex = "\x47\x49\x46\x38\x39\x61\x01\x00\x01\x00\x80\x00\x00\x00\x00\x00\xff\xff\xff\x21\xf9\x04\x01\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x01\x00\x01\x00\x00\x02\x01\x44\x00\x3b";
//var imageHex = "\x47\x49\x46\x38\x39\x61\x01\x00\x01\x00\x80\x00\x00\xff\xff\xff\x00\x00\x00\x21\xf9\x04\x01\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x01\x00\x01\x00\x00\x02\x02\x44\x01\x00\x3b";
  var imageHex = "\x47\x49\x46\x38\x39\x61\x01\x00\x01\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x21\xf9\x04\x01\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x01\x00\x01\x00\x00\x02\x02\x44\x01\x00\x3b\x0a"
  context.done(null, { "body":imageHex });

};

Кажется, это та же проблема, что идругой вопрос переполнения стека, но я надеялся, что это будет исправлено с помощью бинарной поддержки API шлюза. К сожалению, image / bmp не работает для моего варианта использования, так как он не может быть прозрачным ...

Если это кому-нибудь поможет,это был хороший инструмент для преобразования между base64 и hex.

Ответы на вопрос(2)

Ваш ответ на вопрос