This episode covers Swift object storage: the concept of unbounded, scalable storage for unstructured data, its comparison with Cinder and Manila, the proxy, account, container, and object server architecture, and operations for creating containers and uploading objects via REST API and temporary URLs.

After understanding block storage in episode 8, you now meet one more storage type that completes OpenStack: Swift, the Object Storage Service. If Cinder deals with mountable virtual hard disks, Swift deals with unstructured data — files, images, videos, backup archives — stored as objects with metadata.
Why does it deserve its own episode? Because the way object storage thinks is very different. There's no mount, no filesystem tree, no file locks. There are buckets/containers, objects, and keys. Episode 9 dissects that difference, Swift's architecture behind the scenes, and the practical operations of creating containers and uploading objects — including REST API access and temporary URLs.
Object storage stores data as objects — a combination of the data itself, metadata, and a unique identifier — inside containers. Its main strength is unbounded horizontal scalability: to add capacity you just add storage nodes, with no downtime and no limit on a single filesystem's size.
Container (bucket)
├── object: foto-2026.jpg (metadata: content-type, size, date)
├── object: backup-db-08-10.sql
└── object: video-presentasi.mp4Each object is accessed by its identifier, not by a filesystem path. That's what makes Swift a great fit for continuously growing data: backups, archives, media, and assets.
OpenStack provides three storage types that complement each other:
| Service | Type | Example Use |
|---|---|---|
| Cinder | Block Storage | Databases, mounted filesystems |
| Swift | Object Storage | Backups, images, videos, archived data |
| Manila | Shared Filesystem | NFS/CIFS mounted by many instances |
Choose Cinder when you need a persistent disk for an instance, Swift when you're storing large unstructured files, and Manila when you need a filesystem shared by many instances at once — the topic of episode 10.
Swift is designed as a distributed system with four server roles:
openstack object store account showThe output of openstack object store account show shows the number of containers, the number of objects, and the total bytes used in your project's account.
Swift uses eventual consistency and replication: every object is replicated to several nodes (usually 3 replicas) by the replicator process. If one node dies, the object remains available from other replicas. Adding new nodes automatically rebalances data without downtime — that's why Swift is so resilient for archival data.
openstack container create backup-data
openstack object create backup-data server-db-2026-08-10.sql
openstack object list backup-dataThe openstack container create backup-data command creates a container, then openstack object create uploads a file into it. Objects can be extremely large — Swift automatically splits large files into segments.
openstack object save backup-data server-db-2026-08-10.sql
openstack object delete backup-data server-db-2026-08-10.sqlopenstack object save downloads an object into the current directory, and openstack object delete deletes it. All of these are REST operations — the CLI is just a wrapper.
Because Swift is a REST service, you can access objects directly with curl using a token:
TOKEN=$(openstack token issue -f value -c id)
curl -s -H "X-Auth-Token: $TOKEN" \
https://openstack.example.com/v1/AUTH_project/backup-data/server-db-2026-08-10.sqlThe openstack token issue -f value -c id command grabs a Keystone token for curl to use. The Swift REST URL follows the pattern /v1/AUTH_<project>/<container>/<object>.
Giving access to an object without sharing a token is a problem solved by temporary URLs (TempURL). Swift creates a short-lived URL that already carries a signature:
openstack container set --property X-Container-Meta-Temp-URL-Key=rahasia123 backup-data
swift tempurl GET 3600 /v1/AUTH_project/backup-data/server-db-2026-08-10.sql rahasia123swift tempurl produces a URL valid for 3600 seconds. This URL can be shared with anyone — perfect for file sharing or expiring download links.
Episode 9 rounds out your storage knowledge: Swift stores unbounded, scalable unstructured data, conceptually different from Cinder and Manila, runs on a proxy, account, container, and object server architecture with replication, and is operated via the CLI and REST APIs including temporary URLs.
Key takeaways:
openstack container create and openstack object create are the basic operations.In episode 10, we'll cover Manila (Shared Filesystem Service) and Barbican (Key Manager) — providing NFS/CIFS shares that many instances can mount at once with CephFS and NFS-Ganesha backends, and managing secrets, encryption keys, and certificates through Barbican, integrated with Cinder volume encryption.