2016-04-04 9 views
0

Я пытаюсь создать приложение, доступное по HTTP, которое задает путь к документу в s3, выполняет некоторую бизнес-логику и затем возвращает двоичный файл этого документа s3.AWS: загрузка двоичных файлов из s3

Я начал делать это с помощью API Gateway и Lambda, но столкнулся с проблемой, поскольку обе службы настроены на использование xml или json. Я начал пробовать base64 кодировать файл и Lambda, а затем декодировал его с помощью API Gateway, но это тоже не работало.

Я столкнулся с этой статьей, явно заявив, что не делаю то, что делаю Get object from S3 in AWS Lambda function and send to Api Gateway.

Причина, по которой я нахожу Лямбду такой привлекательной, - это мгновенное автоматическое масштабирование по сравнению с beanstalk. Существуют ли какие-либо альтернативы для достижения этого, но при этом обеспечивается аналогичное масштабирование для лямбда?

ответ

1

Команда API Gateway здесь - поддержка двоичной сквозной поддержки находится в нашем отставании, и мы надеемся получить ее в ближайшем будущем, хотя я не могу дать определенную ETA. Я согласен с некоторыми точками в связанной вами теме; некоторые основные функции как Lambda, так и API Gateway построены для JSON. Однако мы планируем поддерживать двоичную транзитную передачу, поэтому, по крайней мере, сможете проталкивать данные.

+0

Это полезно знать. Благодарю. – Banner

2

Простая альтернатива - отправка обратно подписанного URL-адреса.

http://docs.aws.amazon.com/AWSJavaScriptSDK/guide/node-examples.html

s3.getSignedUrl('getObject', params, function (err, url) { 
     if (err) { 
      deferred.reject(err); 
     } else { 
      deferred.resolve({ 
       url: url, 
       expires: expires 
      }); 
     } 
    }); 

Это отсрочивает ответственность за загрузку двоичных файлов в API потребителя.

Смежные вопросы