S3 Object Lambda lets you transform S3 objects on-the-fly using a Lambda function before they are returned to the requesting application — without changing the original stored file.


The Problem It Solves

Different applications often need different versions of the same data.

Without Object Lambda:

Store original + redacted version + enriched version + converted version
= Multiple copies, extra storage cost, sync issues

With Object Lambda:

Store ONE original file
Transform dynamically based on who is requesting
= One copy, no duplication, always in sync

How It Works

image.png

Application requests object
    |
    v
Object Lambda Access Point
    |
    v
Lambda function transforms the object
    |
    v
Modified object returned to application

Original file in S3 stays unchanged

Real Example (from the diagram)

One S3 bucket stores the original customer record. Three different applications access the same object and each gets a different output.

S3 Bucket (original data)
    |
    |-- E-commerce App      --> gets original object directly (full data)
    |
    |-- Analytics App       --> Redacting Lambda removes PII before returning
    |                           (SSN, email hidden for privacy/compliance)
    |
    |-- Marketing App       --> Enriching Lambda adds loyalty data from a database
                                (order data + loyalty points + customer tier)

All three read from the same single object. The original never changes.


Common Use Cases

Data privacy — redact PII (names, SSN, email) for analytics teams who should not see personal data.

Format conversion — store as XML, return JSON to one app and CSV to another.