Overview

Object storage stores data as objects.
Each object contains:

  • The data itself
  • Metadata
  • A unique identifier

Typical examples of stored objects:

  • PDF files
  • Binary blobs
  • Text files
  • Images
  • Other unstructured data

Objects are treated as transactional units. Metadata can be extended
to support additional attributes or indexing.


Storage Structure

Traditional file systems use a hierarchical structure:

/root
 ├── folder
 │    └── file.txt
 └── another-folder
      └── image.png

Object storage does not use nested folders. Instead, it uses a
flat address space.

object-1
object-2
object-3

Each object is accessed by a unique key.


Access Model

Object storage systems expose data through HTTP-based APIs.

Common operations:

GET    Retrieve an object
PUT    Upload or update an object
DELETE Remove an object

Because the interface is HTTP-based:

  • Any service capable of making HTTP requests can interact with the
    storage.
  • Access works globally over the internet.

Advantages

1. High Read Performance

Object storage is optimized for fast object retrieval.

2. Horizontal Scalability

Data is distributed across many storage nodes. This allows:

  • Massive storage capacity
  • High availability
  • Fault tolerance

3. Ideal for Unstructured Data

Typical workloads:

  • Images
  • Media files
  • Backups
  • Static assets
  • User uploads

4. Reduced Infrastructure Management

Cloud providers manage:

  • Physical disks
  • RAID configurations
  • Hardware failures
  • Storage scaling

Developers only interact with the API.


Limitations

Object storage performs poorly for workloads with frequent small
updates
.

Examples:

  • Databases
  • Transaction-heavy systems

These workloads require low-latency random I/O, which object storage
does not optimize for.


Common Web Application Use Cases

Object storage is well suited for static and user-generated content.

Typical examples:

  • CSS files
  • JavaScript files
  • Images
  • Videos
  • File uploads

Benefits:

  • Changes are infrequent
  • Files can be cached globally via Content Delivery Networks
    (CDNs)
  • Files can be served directly via HTTP

This removes the need for a dedicated static file server.


Major Object Storage Providers

Common providers include:

  • Amazon S3
  • DigitalOcean Spaces
  • Rackspace Cloud Files

Typical characteristics:

  • Pay only for the storage used
  • Access controlled using API keys
  • Global data access via HTTP APIs

Applications authenticate using access keys to perform read and
write operations.


Simulating Directory Structures

Object storage does not support directories. However, directory-like
behavior can be simulated using object names.

Example upload path:

/foo/bar/file.txt

Stored object key:

foo/bar/file.txt

The path is part of the object name. Interfaces then interpret these
prefixes as folders.

Services like:

  • Dropbox
  • Google Drive

use similar techniques internally. Dropbox, for example, uses Amazon S3
as its storage backend.


Hosting Object Storage

There are two primary deployment models.

1. Managed Cloud Storage

You purchase object storage from a cloud provider.

Examples:

  • Amazon S3
  • DigitalOcean Spaces
  • Rackspace Cloud Files

Advantages:

  • No infrastructure maintenance
  • Easy scaling
  • Global availability
  • Built-in redundancy

Developers only configure application access.


2. Self-Hosted Object Storage

You can run object storage on infrastructure you control.

Typical approach:

  • Use block storage volumes
  • Deploy an object storage server on top

Example solution:

  • MinIO (S3-compatible open source server)

Benefits:

  • Full infrastructure control
  • Increased privacy
  • Flexible deployment

Trade-off: you must manage hardware, scaling, and reliability.


Block Storage

Block storage uses raw disk volumes attached to a server.

The operating system divides disks into blocks (volumes).

Each volume behaves like a separate disk.

Example:

Volume 1 → Application files
Volume 2 → Database storage
Volume 3 → Logs

Each volume can be formatted with a filesystem such as:

  • ext4
  • XFS
  • NTFS

Block Storage Capabilities

Block storage provides:

  • High I/O performance
  • Low latency reads and writes
  • Flexible volume management

Typical operations:

  • Resize volumes
  • Attach volumes to different servers
  • Format volumes with different file systems

Block Storage Use Cases

Block storage is required for workloads with high I/O requirements.

Typical examples:

  • Databases
  • Application servers
  • Operating system disks

Databases in particular require fast read/write operations that object
storage cannot provide.


Object Storage vs Block Storage


Feature Object Storage Block Storage


Structure Flat namespace Filesystem-based

Access HTTP APIs Attached disk volumes

Best For Static and unstructured Databases and active
data workloads

Scalability Extremely high Limited to attached
disks

Performance Optimized for reads Optimized for
low-latency I/O


Typical Web Application Architecture

A common architecture uses both storage types.

Example:

Block Storage
    ├── Application code
    └── Database

Object Storage
    ├── Static assets (CSS, JS)
    └── User uploads

This combination provides:

  • Fast transactional storage
  • Scalable static file delivery