How to upload file to lambda function or API Gateway?

API Gateway has added support for an S3 Proxy. This allows you to expose file uploading directly to S3.

http://docs.aws.amazon.com/apigateway/latest/developerguide/integrating-api-with-aws-services-s3.html


I'd highly recommend using direct S3 upload using one of the AWS SDKs. AWS Lambda is best suited for processing events, not content transfers like uploads. You can check its billing and limits to make a more informed decision on if it's really something you're looking for.