Amazon S3 annotations is here! Attach up to 1 GB of context straight to your objects!
Hey everyone, it's Shii-chan! Today's news is a treat for storage fans. Amazon S3 just got a new feature called annotations that lets you attach rich context directly to your objects. Let's take a look!
AWS Blog
What was announced?
On the AWS Blog (the News-style blog that announces new features), Amazon S3 launched a new capability called S3 annotations. It lets you attach large, mutable, and queryable metadata directly to each object you store in S3.
And the scale is on a totally different level from ordinary metadata: you can attach up to 1,000 named annotations per object, each up to 1 MB, for a total of up to 1 GB per object. The content can be in whatever format you like, such as JSON, XML, YAML, or plain text. It's built as a foundation for AI agents and autonomous workflows that need to find, understand, and act on data.
The story so far
S3 already had a few ways to attach metadata, but each came with limits.
- User-defined metadata: up to 2 KB, and immutable (you had to rewrite the object to change it)
- Object tags: mutable, but capped at 10 tags and aimed at access control and lifecycle rules
So the real information describing "what this data actually is" usually ended up in a separate database or sidecar file outside S3, which you then had to keep in sync. AWS describes this synchronization work like this:
metadata describing S3 objects often lives in separate databases or sidecar files, requiring complex synchronization workflows that can exceed data storage costs.
In other words, the cost of managing metadata can even exceed the cost of storing the data itself. Annotations aim to remove that separate metadata layer entirely.
What changes
The biggest thing is that the context travels with the data itself! Annotations follow the object automatically during copy, replication, and cross-region transfers, and when the parent object is deleted, its annotations go with it. So you no longer have to worry about sync drift.
Annotations are also mutable throughout the object's lifecycle. You can update or delete their contents at any time without rewriting the object itself.
The use cases are easy to picture, too. You could attach transcripts, subtitles, and licensing info to a video, add AI-generated summaries and sentiment analysis to research documents, or tag clinical trial data with regulatory status and approval history. And even for objects in an archive tier like Glacier, you can read and query just the annotations with no retrieval charges, which is a lovely touch.
Let's dive deeper
Annotations are managed through four APIs: PutObjectAnnotation (attach or update), GetObjectAnnotation (retrieve), ListObjectAnnotations (list), and DeleteObjectAnnotation (delete). Here's what it looks like from the CLI.
aws s3api put-object-annotation \
--bucket my-media-bucket \
--key videos/documentary-2026.mp4 \
--annotation-name mediainfo \
--annotation-payload ./mediainfo.json
The IAM permissions you need are s3:PutObjectAnnotation and s3:GetObjectAnnotation.
The querying side is impressive. When you enable an S3 Metadata annotation table on a bucket, S3 automatically indexes your annotations into a fully managed Apache Iceberg table, so you can query them with SQL from Amazon Athena or any Iceberg-compatible engine. For example, here's a query to find videos with more than 8 audio tracks.
SELECT DISTINCT bucket, object_key
FROM "s3tablescatalog/aws-s3"."b_my_media_bucket"."annotation"
WHERE name = 'mediainfo'
AND CAST(json_extract_scalar(text_value, '$.audio_tracks') AS INTEGER) > 8
As for timing, the journal table that holds change history updates in near real time, while the annotation table refreshes within about an hour. For buckets that already have annotations, S3 backfills automatically, though depending on the object count it can take anywhere from several hours to several days.
On pricing, annotation storage is billed at S3 Standard rates regardless of the parent object's storage class. It's available in all AWS Regions, including the AWS China Regions, and annotation tables are available wherever S3 Metadata is supported. Natural language search is also possible when you combine the S3 Tables MCP server with tools like Amazon SageMaker Unified Studio.
Wrap-up
- Amazon S3 gained annotations, a new feature for attaching metadata directly to objects!
- Up to 1,000 annotations and 1 GB total per object, mutable and in free-form formats like JSON or YAML
- Annotations travel with the data through copy and replication, removing the need for a separate metadata database
- Enable an S3 Metadata annotation table and you can query with SQL from Athena and others, even in archive tiers with no retrieval charges
- Billed at S3 Standard rates and available in all Regions, including China
This one lands perfectly for anyone who wants AI agents to discover and act on large volumes of unstructured data!