Наиболее удобный / эффективный способ загрузки на S3 - использование предварительно назначенных URL-адресов .При этом вы делегируете проверенный API S3, чтобы сделать тяжелую работу за вас.
Ваше приложение будет использовать лямбда-функцию просто для получения предварительно назначенного URL-адреса, тогда загрузка будет осуществляться непосредственно на S3, и, конечно, вы можете обработать файл со второй лямбда-кодом после его загрузки.
Вы можете увидеть описание аналогичного решения (без API Gateway) на Блог Stratosparks