Title: Building an AWS Lambda Function to Automatically Sort S3 Files by Type

Sep 14, 2023·

2 min read

Table of contents

No heading

No headings in the article.


In the age of serverless computing, automating tasks is becoming increasingly accessible and powerful. In this tutorial, i will walk you through the process of creating an AWS Lambda function that automatically sorts files uploaded to an S3 bucket by their file types. This can be a valuable addition to your AWS toolkit, simplifying file management and organization.

Section 1: Setting up AWS Resources:

To get started with our serverless file sorting project, we first need to set up the necessary AWS resources. Specifically, we'll require two types of resources:

S3 buckets for storing our files and

IAM role to grant the Lambda function the permissions it needs. since it was a project i gave full administration access to the role , but in reality only s3 permission is enough

Creating S3 Buckets:

To begin, we'll create the following S3 buckets:

  • Input Bucket: This is where users will upload files, triggering our Lambda function.

  • Output Buckets: We'll create three output buckets, one for each file type (PDF, TXT, JPEG), to store sorted files.

in this ACL is dasabled

i have given the allow public access . and rest all are default setting

Section 3: Writing the Lambda Function:

  • Introduce the Lambda function's purpose (sorting files based on their extensions).

  • Provide a code example (e.g., in Python using Boto3) and explain its key parts.

  • Mention the different file extensions you're handling (PDF, TXT, JPEG) and how they're categorized.

  • Explain any error handling or logging implemented in the Lambda function.

The code is also available on my github repo :-


Section 4: Configuring the Lambda Trigger: To make our Lambda function come to life, we need to configure it to trigger automatically when new objects are created in our input S3 bucket.

Monitoring and Debugging: We'll provide guidance on monitoring and debugging Lambda function executions and handling any potential issues.