Plan Your Object Storage Migration
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.
Plan your object storage migration
Quake AI object storage exposes an S3-compatible API, so many tools and SDKs built for AWS S3 also work with Quake AI. Before migrating data, review what is and is not supported so you can plan around feature gaps.
S3 feature compatibility#
Quake AI object storage runs on OpenStack Swift with a Ceph backend and exposes an S3-compatible API. Core object operations work as expected. These advanced S3 features are not available.
Supported#
| Feature | Notes |
|---|---|
| PUT / GET / DELETE objects | Standard S3 operations via SigV4 signing |
| Multipart uploads | Initiate, upload parts, complete, abort, list parts |
| Bucket and object ACLs | GET / PUT ACL on buckets and objects |
| Object versioning | Enable, suspend, list versions, delete markers |
| Server-side encryption | SSE-C (customer-provided keys) and SSE-OMK (Quake AI-managed keys) |
| Object tagging | GET / PUT / DELETE object tags |
| Copy object | Server-side copy within the same endpoint |
| Presigned URLs | Time-limited download/upload links via SigV4 |
| CORS configuration | Per-bucket CORS rules |
| Delete multiple objects | Batch delete in a single request |
Not supported#
| Feature | What to do instead |
|---|---|
| Lifecycle policies (transition / expiration) | Use rclone with --max-age or cron-based cleanup scripts. See backup automation. |
| Event notifications (SNS / SQS / Lambda triggers) | Poll for changes with rclone check --one-way or implement application-level event handling. |
| Bucket policies (JSON policy documents) | Use S3 bucket and object ACLs. See grant access control. |
| Storage classes (Standard / IA / Glacier) | All data is stored on a single tier. Quake AI does not offer Standard, IA, or Glacier classes. |
| Static website hosting | Front your bucket with Nginx or Caddy on a Quake AI VM. See CloudFront CDN setup for a CDN pattern. |
| S3 Select (query objects in place) | Download objects and query locally, or use a database for structured data. |
| Object Lock / WORM | Not available. For compliance workloads requiring immutable storage, contact Quake AI support. |
Inventory your data#
Before starting a transfer, collect these numbers from your source provider:
| Metric | How to get it | Why it matters |
|---|---|---|
| Total data size | aws s3 ls --summarize --recursive s3://BUCKET | Determines transfer time and Quake AI storage cost |
| Object count | Same command, or provider console | High object counts (over 1M) need parallelism tuning |
| Largest object | Sort by size in provider console | Objects over 5 GB require multipart upload support in your tool |
| Custom metadata usage | Check if objects have x-amz-meta-* headers | Tool support varies by version. For cross-provider migration, MinIO Client (mc mirror) and current rclone (with --metadata) preserve x-amz-meta-* headers; s3cmd preserves metadata only on server-side copies within one endpoint (2.2.0 and later), and the AWS CLI does not preserve it across providers. See tools comparison. |
| Versioning state | aws s3api get-bucket-versioning --bucket BUCKET | If enabled, decide whether to migrate all versions or only current objects |
| Lifecycle rules | aws s3api get-bucket-lifecycle-configuration --bucket BUCKET | These do not transfer. Document them so you can replicate with external tooling. |
| Bucket policies / ACLs | aws s3api get-bucket-policy --bucket BUCKET | Quake AI does not support JSON bucket policies. Translate them to S3 ACLs. |
Estimate transfer time and cost#
Egress fees from your source provider#
Egress pricing varies widely across providers and changes regularly. Confirm current rates on each provider's pricing page before estimating the migration bill:
| Provider | Egress model | Notes |
|---|---|---|
| AWS S3 | Per-GB metered, with migration credits by request | Egress credits for a full migration off AWS require an AWS Support request and approval, apply only for a limited completion window, and exclude CloudFront, Direct Connect, Snow Family, and Global Accelerator traffic; see AWS pricing |
| Google Cloud Storage | Per-GB metered | No free migration program; see GCS pricing |
| Azure Blob | Per-GB metered | No free migration program; see Azure bandwidth pricing |
| Hetzner Object Storage | Included in plan | No egress fees |
| DigitalOcean Spaces | Per-GiB after included allowance | See DigitalOcean Spaces pricing |
| Backblaze B2 | Per-GB metered, with Cloudflare Bandwidth Alliance carve-out | Free egress to Cloudflare under the Bandwidth Alliance; see the Backblaze Cloudflare integration docs for current terms and B2 pricing |
| Wasabi | Free within a fair-use cap | Free egress while monthly downloads stay at or below your active stored volume, subject to an absolute ceiling of 100 TB per month; see Wasabi pricing |
Transfer time estimate#
Rough formula for bulk transfers over a stable connection:
Hours = (Total GB × 8) / (Bandwidth Mbps × 3600 × Utilization)At 1 Gbps with 60% utilization, 1 TB takes approximately 3.7 hours; 10 TB takes about 37 hours. At 100 Mbps with 60% utilization, 1 TB takes ~37 hours. Add 20-30% overhead for S3 API request latency on high object counts (over 1 million objects).
Object storage cost#
Object storage on Quake AI is a per-TB add-on. Backups you store there add to stored capacity; extra terabytes are priced per additional TB. For current add-on rates, see the pricing reference and the Quake AI pricing page.
Set up Quake AI S3 credentials#
Migration tools need an access key and secret key for the Quake AI S3 endpoint. Generate these before starting any transfer.
- Follow create S3 credentials to generate a key pair.
- Note your region endpoint:
object.us-east-1.rumble.cloudobject.us-east-2.rumble.cloudobject.us-west-1.rumble.cloud
- Set the S3 region to
us-east-1for AWS Signature Version 4 compatibility (required regardless of which Quake AI region you use).
Choose a migration strategy#
| Strategy | When to use | How it works |
|---|---|---|
| Big-bang | Small data sets (under 100 GB), tolerance for brief downtime | Single rclone sync, cut over applications, decommission source. |
| Phased | Large data sets, cannot tolerate downtime | Initial bulk copy → incremental delta syncs on a schedule → final sync at cutover. |
| Continuous sync | Multi-cloud or gradual migration | Ongoing rclone sync via cron. Applications read from the new target once ready. Source stays active as fallback. |
For large data sets, a phased runbook looks like this: run an initial bulk copy, schedule daily delta syncs to catch changes, then run a final sync and cut over during a maintenance window.
Retention without lifecycle policies#
Since Quake AI does not support S3 lifecycle policies, implement retention externally:
With rclone:
rclone delete quakeai:my-bucket --min-age 90dRun this on a cron schedule to expire objects older than your retention period.
With a shell script:
#!/bin/bash
BUCKET="my-bucket"
RETENTION_DAYS=90
rclone delete "quakeai:${BUCKET}" --min-age "${RETENTION_DAYS}d" --verboseValidation checklist#
Run these checks after each migration or sync pass:
- Object count matches: Compare source and destination:
rclone size source:bucketvsrclone size quakeai:bucket - Total size matches: Same commands. Allow for minor differences due to metadata overhead.
- Spot-check file integrity: Download 5-10 random objects from both sides and compare checksums:
rclone check source:bucket quakeai:bucket --one-way - ACLs are correct: Verify public/private access state on critical buckets.
- Application connectivity: Point a test instance at the Quake AI endpoint and confirm retrieval and upload operations succeed.
- Versioning state: If versioning was enabled on the source, enable it on the destination: see enable versioning.
- Encryption state: If objects were encrypted, verify encryption is configured on Quake AI: see server-side encryption.
Rollback plan#
Keep your source data intact for at least 30 days after cutover. During this period:
- Run daily
rclone checkbetween source and destination to catch drift. - If issues arise, revert your application's endpoint configuration to the source provider.
- After 30 days with no issues, decommission the source and cancel the source provider subscription.
Next steps#
- Choose a migration tool: feature comparison of rclone, AWS CLI, s3cmd, MinIO Client, and restic
- Migrate from AWS S3: step-by-step guide for the most common migration path
- Set up Quake AI as a backup target: use Quake AI for 3-2-1 backups without a full migration
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