S3 URL with Deeply Nested Key Path

Parse an S3 URL with a deeply nested object key using date-based or hierarchical partitioning. Understand how S3 flat storage simulates folder structures.

Practical Patterns

Detailed Explanation

Deeply Nested Key Paths in S3

S3 is a flat object store — it has no real directory hierarchy. The forward slashes (/) in object keys are simply characters that the S3 console and tools display as folders. Understanding this is important for parsing URLs correctly.

Example URL

https://data-lake.s3.us-east-1.amazonaws.com/raw/events/source=web/year=2024/month=01/day=15/hour=14/events-00001.json.gz

Parsed Components

Component Value
Bucket data-lake
Key raw/events/source=web/year=2024/month=01/day=15/hour=14/events-00001.json.gz
Region us-east-1
Style Virtual-Hosted

Hive-Style Partitioning

The key uses Hive-style partitioning (key=value segments), which is a common pattern in data lakes:

Partition Value
source web
year 2024
month 01
day 15
hour 14

This partitioning scheme is understood by:

  • AWS Athena — Automatically discovers partitions from the key structure
  • Apache Spark — Reads partition columns from the path
  • AWS Glue — Crawlers detect Hive-style partitions
  • Presto / Trino — Partition pruning for efficient queries

Prefix-Based Operations

Since S3 uses prefix matching, you can efficiently list or operate on subsets:

# List all events for January 2024
aws s3 ls s3://data-lake/raw/events/source=web/year=2024/month=01/

# Delete all data for a specific day
aws s3 rm s3://data-lake/raw/events/source=web/year=2024/month=01/day=15/ --recursive

Key Length Limits

S3 object keys can be up to 1,024 bytes when UTF-8 encoded. Deep nesting with long partition values can approach this limit. Plan your partitioning scheme to keep keys well within the limit.

Use Case

Parsing S3 event notification URLs in a Lambda function to extract date partition values and route data to the appropriate processing pipeline based on the source and date hierarchy.

Try It — AWS S3 URL Parser

Open full tool