Sign in
← Cloud
11 min · easy · Lesson 1 of 2

Object storage (S3-compatible)

How object storage differs from a filesystem, what a bucket and an object are, and why it matters for backups and static files.

Another way to store files

We're used to keeping files in a file system, from the lesson on FHS: a directory tree, permissions, a path. That works well for a server, but it scales badly to terabytes and millions of files reachable from different machines. That's what object storage is for.

The reference here is Amazon S3, and its API became the de facto standard. Yandex Object Storage, Selectel, MinIO, and many others are "S3-compatible": you talk to them with the same requests and the same tools.

Bucket and object

Object storage has no directory tree. There are two concepts:

bucket: company-backups
  key: db/2026-06-18.dump   → object (data + metadata)
  key: static/logo.png      → object

AWS states directly that a bucket has a flat structure, not a hierarchy like a file system. The "folders" the web console shows are assembled from a shared start of keys, that is, from a prefix. For example, db/ is the prefix of key db/2026-06-18.dump.

How you talk to it

Access to an object happens over HTTP through an API, not by mounting a disk. Putting an object means sending PUT, getting it means GET, deleting it means DELETE. Usually a CLI like aws s3 or mc, or an SDK in application code, makes these requests, but under the hood it's still HTTP.

An object's address is made of the storage address, the bucket name, and the key:

PUT    https://<storage>/company-backups/db/2026-06-18.dump   put
GET    https://<storage>/company-backups/db/2026-06-18.dump   get
DELETE https://<storage>/company-backups/db/2026-06-18.dump   delete
GET    https://<storage>/company-backups?list-type=2&prefix=db/   list keys with prefix db/

The list of objects comes back as XML. If you add delimiter=/ to the request, the storage groups keys by the next / and returns the groups in CommonPrefixes blocks. That's how the console draws "folders".

In a real cloud, every such request is signed with an access key and a secret key, and the CLI or SDK computes that signature for you. That's why you don't usually hit AWS with bare curl. This lesson's labs use a training storage without signatures, so the requests stay fully visible.

How it differs from a file system

These differences are exactly why people choose object storage:

Where this shows up at work

Object storage covers a few tasks you already know:

Access to a bucket is granted on the principle of least privilege: a key with permissions for just the bucket you need (or even just one prefix), not the whole storage.

Common mistakes

In short

What you'll need for the tasks

The next lesson covers cloud models: IaaS, PaaS, and SaaS.

Done reading?

Mark the lesson as read to move your track progress forward.

Go through it with an AI agent

The agent explains anything unclear in plain words, gives you 2 labs for this lesson and drills you on interview questions. $49 one-time, lifetime access.

Get access for $49

Tell the agent: use MCP izi, give me lesson cloud-basics-01-object-storage