S3-compatible object storage
Coming from another cloud?
▸AWS·Amazon S3
This Quake AI feature maps to AWS’s Amazon S3.
▸Azure·Blob Storage
This Quake AI feature maps to Azure’s Blob Storage.
▸DigitalOcean·Spaces Object Storage
This Quake AI feature maps to DigitalOcean’s Spaces Object Storage.
▸Google Cloud·Storage
This Quake AI feature maps to Google Cloud’s Storage.
▸Hetzner·Object Storage
This Quake AI feature maps to Hetzner’s Object Storage.
Object storage
An object in object storage is a blob of bytes plus metadata plus a unique identifier, stored in a flat namespace inside a bucket. Applications read and write objects over HTTP APIs.
Object storage scales to large capacity without the operational burden of traditional file servers. Common uses include backups, media assets, data lakes, static website content, and durable remote-access storage.
Quake AI object storage runs on OpenStack Swift with a Ceph backend and exposes an S3-compatible API. Each subscription includes up to 1 TB of storage, with additional capacity available on request.
How object storage works#
Objects are made up of three parts:
- Data: the file content itself (an image, a log file, a database dump, anything)
- Metadata: key-value pairs describing the object (content type, creation date, custom attributes)
- Unique identifier: a URL that gives you direct access to the object
Objects live inside buckets (also called containers). Each bucket holds many objects, and you can create folders within buckets to organize objects logically. Folder paths are a naming convention on object keys, not a directory tree on disk.
Objects are immutable; you do not edit an object in place. Instead, you overwrite it with a new version or use versioning to retain previous versions of an object for audit trails or rollback.
The storage layer replicates data across multiple nodes automatically. If a disk or server fails, replicas on other nodes keep the object available. You do not manage RAID arrays or backup jobs for platform-level durability.
When to use object storage#
Object storage and block storage serve different purposes. Choosing the right one depends on how your application accesses data.
| Object storage | Block storage (volumes) | |
|---|---|---|
| Access model | HTTP API (S3-compatible) | Block device mounted to an instance |
| Best for | Backups, media, static assets, data lakes, archives | Databases, application state, OS disks |
| Scalability | Petabyte-scale, no filesystem limits | Limited by volume size (1 GiB–29,800 GiB) |
| Performance | High throughput for large sequential reads/writes | Low-latency random I/O |
| Sharing | Accessible from anywhere with credentials | Attached to one instance at a time |
| Modification | Immutable (overwrite or version) | In-place reads and writes |
Use object storage when your application treats files as whole units: upload once, read many times. Use block storage when your application needs a filesystem with random read/write access, like a database or operating system disk.
S3 API compatibility#
Quake AI object storage speaks the S3 protocol. You generate S3 credentials through the Console and then use S3-compatible clients (the AWS CLI, s3cmd, Boto3, or application SDKs) to interact with your buckets and objects. Existing tools and libraries built for S3 work with Quake AI without code changes.
The S3 API covers bucket creation, object upload and download, access control policies, versioning, multipart uploads for large files, and presigned URLs for temporary access.
Access control#
You can control who sees your data at two levels:
- Bucket-level: set a bucket to private (requires authentication for access) or public (objects are readable by anyone with the URL). Manage this through the Console or via S3 bucket policies.
- Object-level: S3 ACLs and bucket policies let you grant fine-grained permissions to specific users or credential sets. Use this when different teams or applications need different access levels within the same bucket.
Versioning#
Versioning retains prior versions of objects in a bucket. When you overwrite or delete an object, the previous version is retained. You can list, retrieve, or restore any historical version. Enable versioning through the S3 API when you need audit trails, accidental deletion protection, or the ability to roll back content changes.
Object Storage on Quake AI#
The object storage service uses OpenStack Swift with a Ceph storage backend, exposed through both the native Swift API and the S3-compatible API. Data is replicated across multiple storage nodes for durability.
The platform imposes default limits on the number of objects per bucket, but you can request increases through support if your use case requires it. Large objects are handled through multipart upload, which splits files into segments stored as separate objects and reassembled on retrieval.
Further reading#
On this platform:
- Create a bucket: set up your first storage bucket via the Console
- How to host a static site on object storage: publish HTML and assets with optional CDN fronting
- How to put a CDN in front of a Quake AI workload: partner CDN patterns for buckets and VMs
- Create S3 credentials: generate credentials for S3-compatible tools
- Upload a file: upload objects through the Console
- Grant access control: configure bucket permissions
- Enable versioning: turn on object version history
- Block storage concepts: when block storage is the better fit
External resources:
- OpenStack Swift documentation: upstream architecture and administration reference
- Amazon S3 API reference: the S3 protocol specification that Quake AI implements
- Ceph documentation: the storage backend that powers Quake AI object storage
Quick answers
- What is the S3-compatible endpoint hostname?CLIAPI
- Where do I set CORS rules, lifecycle policies, or bucket policies in the Console?Console
- Why do Object Storage API curl examples fail before the first request?API
- Why does my public bucket URL return 404 from the browser after I apply a public-read policy?APIConsole
Related content
Pages
How-tos
Configure bucket CORS
Object storage
How to access an uploaded file in object storage
Object storage
How to access buckets via FTP, FTPS, or SFTP
Object storage
How to back up and restore a Quake AI VM
Compute
How to Back Up to Quake AI Object Storage
Object storage
How to create a folder in an object storage bucket
Object storage
How to create an object storage bucket
Object storage
How to create S3 credentials
Object storage
How to enable versioning on an object storage bucket
Object storage
How to grant access control on an object storage bucket
Object storage
How to host a static site on object storage
Object storage
How to manage OpenTofu state with Quake AI S3
Automation
How to Migrate from AWS S3 to Quake AI
Object storage
How to Migrate from Azure blob storage to Quake AI
Object storage
How to Migrate from Backblaze B2 to Quake AI
Object storage
How to Migrate from DigitalOcean Spaces to Quake AI
Object storage
How to Migrate from Google Cloud storage to Quake AI
Object storage
How to Migrate from Hetzner object storage to Quake AI
Object storage
How to Migrate from Linode object storage to Quake AI
Object storage
How to Migrate from Vultr object storage to Quake AI
Object storage
How to Migrate from Wasabi to Quake AI
Object storage
How to mount S3 storage on Windows, macOS, and Linux
Object storage
How to put a CDN in front of a Quake AI workload
Network
How to Set Up Multi-Cloud Object Storage Sync
Object storage
How to Update Your Application's S3 Endpoint for Quake AI
Object storage
How to upload a file to an object storage bucket
Object storage
How to use CloudFront with object storage buckets
Object storage
Tutorials
Explanations
Reference
Bucket policy examples
Object storage
Migration Tools Comparison
Object storage
Object storage API error reference
Object storage
Object storage CLI reference
Object storage
Object Storage Console
Object storage
Object Storage Service API Reference
Object storage
Resource Tiers
Account
Storage Console
Object storage
Overviews
quickstart
deployment
Deploy MinIO + Iceberg with the minio-iceberg template
Automation
Deploy the audio post-production worker template with OpenTofu
Automation
Deploy the CPU render-farm worker pool template with OpenTofu
Automation
Deploy the Creator-AI inference worker template with OpenTofu
Automation
Deploy the live RTMP/SRT ingest and restream template with OpenTofu
Automation
Deploy the S3 Storage with ACLs template with OpenTofu
Automation
evaluation
migration
How Quake AI uses OpenStack
Platform
Migrate a B2B SaaS application to Quake AI
Automation
Migrate a Kubernetes platform to Quake AI
Kubernetes
Migrate a web application to Quake AI
Automation
Migrate an ecommerce storefront to Quake AI
Automation
Migrate your data from AWS S3 to Quake AI
Object storage
Migrating from AWS to Quake AI
Platform
Migrating from Azure to Quake AI
Platform
Migrating from DigitalOcean to Quake AI
Platform
Migrating from GCP to Quake AI
Platform
Migrating from Hetzner Cloud to Quake AI
Platform
Migrating from Linode (Akamai Cloud Computing) to Quake AI
Platform
Migrating from Vultr to Quake AI
Platform