Skip to content
Getting Digital

Object Storage

Also: S3-compatible storage, blob storage, bucket storage

Object storage keeps every file as a self-contained object (the bytes, a unique key and some metadata) inside a flat bucket you read and write over HTTP, with no drive to mount and no directory tree underneath it.

Our take. Object storage is an API that happens to hold files, and the day a project starts mounting a bucket to make it behave like a drive is the day its architecture went wrong. We would also choose a provider on its egress terms long before its per-gigabyte price, because the storage line on the invoice is almost never the one that surprises anybody.

A bucket is an API, not a drive

Object storage is a service that keeps files in the cloud as objects: each one a key, the bytes and a little metadata, held in a bucket and fetched with an HTTP request rather than a disk read. Amazon S3 defined the interface and nearly everyone copied it, which is why moving between providers is normally a change of endpoint and credentials rather than a change of code. Nothing in that picture belongs to a particular machine. Your VPS can be destroyed and rebuilt without the bucket noticing, because the provider is holding copies across its own hardware and handing them back by key. Access works the same way: a bucket is closed until a policy or a signed URL opens it, which is exactly why misconfigured policies are how private data ends up indexed by strangers. Bucket names are also claimed globally within a provider, which is why every tutorial ends up appending a suffix nobody else has taken yet.

The first mistake is almost always the same one. Tools such as s3fs and rclone will happily present a bucket as a folder, and the illusion holds until an application appends to a file, seeks into the middle of one, or expects a lock. Objects are written and read whole. There are no real directories either, only keys containing slashes and a console that draws a tree which does not exist. What the model suits is material written once and read many times: user uploads, images and video, database dumps, log archives, build artefacts, and entire static sites served straight from a bucket behind a CDN. Live application state is the opposite shape, so databases and session files stay on a real volume where partial writes are allowed. Listing is the other habit worth unlearning: asking a bucket what it contains is a paged request that grows slower as the bucket fills, so serious applications keep their own index in a database and treat the bucket purely as the place bytes are kept.

The bill lives in the egress

Keeping data in a bucket is cheap and predictable. Getting it back out to visitors is the part that grows with your success, because providers meter outbound transfer, and an architecture that streams large files directly from a bucket can invert the whole cost model. Cloudflare markets R2 on precisely this point in its own documentation: storage is charged, egress is not. Read the transfer terms before the storage price, and keep a cache in front so the origin stays quiet.

In practice

Run aws s3 mv s3://site-assets/catalogue/2023/ s3://site-assets/catalogue/archive/2023/ --recursive and it reads like a move. Watch the request log and it is a CopyObject followed by a DeleteObject for every single file: ten thousand photos means twenty thousand billed requests and a job that runs for as long as it runs. An object has no address apart from its key, and a key cannot be edited in place, so renaming a prefix means rewriting everything beneath it.

The portability claim is just as easy to check. Point the AWS command line tool at Cloudflare R2 with an --endpoint-url flag and the same aws s3 ls command answers unchanged, because R2, Backblaze B2, DigitalOcean Spaces and the self-hosted MinIO all implement Amazon's interface. That is the entire practical meaning of the label S3-compatible.

Often confused with

VPS (Virtual Private Server)
A server's disk is block storage: attached to one machine, mountable, happy with partial writes and databases. A bucket is none of those things and survives the machine.
CDN (Content Delivery Network)
A CDN caches copies near visitors; object storage is what those copies came from. Buckets are usually the origin sitting behind the edge, not a replacement for it.

Key takeaways

  • →Objects live in flat buckets behind an HTTP API, with the S3 interface acting as the common tongue that makes providers swappable.
  • →Whole-object reads and writes make buckets ideal for uploads, media, backups and static sites, and actively hostile to databases and file locks.
  • →Compare providers on egress, not on storage: outbound transfer is the line that scales with traffic.

Related concepts

  • Broader topicCloud Hosting

    Object storage is the cloud's native storage primitive.

Certifications that test this

Vendor exams whose syllabus covers this concept — facts, cost and a preparation path on each page.

More courses from these shelves

A rotating selection from the course directory, drawn from the subcategories where this concept is taught rather than picked for it. Details, price and the provider link are on the course page.

Introduction to Cloud Data Analytics with Google BigQuery

This course is designed for the students who are at their initial stage or at the beginner level in learning the data w…

Udemy

Begin with Microservices

In this course, you will learn how to build REST APIs or Microservices using the latest version of Spring Boot), and Mo…

Udemy

AWS EKS (Elastic Kubernetes Service)

The Course is divided into 3 parts -Part 1 - Kubernetes and its objects (Deep Dive). In this part I will talk about Kub…

Udemy

Increasing BDD Code Efficiency

Increasing BDD (Behavior Driven Development) Code Efficiency is all about minimizing your maintenance effort while maxi…

Udemy

Azure Kubernetes Service AGIC Ingress: 30 Real-World Demos

Course Overview Welcome to this Amazing course on Azure Kubernetes Service AGIC Ingress: 30 Real-World Demos. Below is…

Udemy

Monitoring and Maintaining Agent Performance

Are you building, deploying, or managing AI agents and want to ensure they operate at peak performance? Monitoring and…

Udemy

FAQ

Can I just mount a bucket and use it as a folder?
You can, and for read-mostly workloads with whole files it survives. It falls apart wherever software assumes a file system: appending to logs, editing in place, locking, or anything expecting fast directory listings. If code needs those behaviours, give it a real volume and use the bucket for the finished artefacts instead.
Does putting files in a bucket count as a backup?
Only with versioning switched on and a separate set of credentials. A bucket your application can write to is a bucket your application can erase, and ransomware and bad migrations both count as writes. Enable object versioning, add lifecycle rules for old versions, and keep the deletion rights somewhere the running app cannot reach.
S3 itself, or one of the compatible providers?
Stay on S3 when you are already deep in the Amazon ecosystem and want its events, lifecycle policies and integrations without adapters. Look at R2, B2 or Spaces when the workload is mostly serving files to the public, because that is where the transfer terms diverge most sharply. Your code barely notices either way.

Sources

The primary text this definition rests on. Read it before you trust ours.

Last reviewed 14 September 2026 · Getting Digital