Skip to content

Plan Your Object Storage Migration

Explanation · Updated Sep 2026

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#

FeatureNotes
PUT / GET / DELETE objectsStandard S3 operations via SigV4 signing
Multipart uploadsInitiate, upload parts, complete, abort, list parts
Bucket and object ACLsGET / PUT ACL on buckets and objects
Object versioningEnable, suspend, list versions, delete markers
Server-side encryptionSSE-C (customer-provided keys) and SSE-OMK (Quake AI-managed keys)
Object taggingGET / PUT / DELETE object tags
Copy objectServer-side copy within the same endpoint
Presigned URLsTime-limited download/upload links via SigV4
CORS configurationPer-bucket CORS rules
Delete multiple objectsBatch delete in a single request

Not supported#

FeatureWhat 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 hostingFront 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 / WORMNot 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:

MetricHow to get itWhy it matters
Total data sizeaws s3 ls --summarize --recursive s3://BUCKETDetermines transfer time and Quake AI storage cost
Object countSame command, or provider consoleHigh object counts (over 1M) need parallelism tuning
Largest objectSort by size in provider consoleObjects over 5 GB require multipart upload support in your tool
Custom metadata usageCheck if objects have x-amz-meta-* headersTool 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 stateaws s3api get-bucket-versioning --bucket BUCKETIf enabled, decide whether to migrate all versions or only current objects
Lifecycle rulesaws s3api get-bucket-lifecycle-configuration --bucket BUCKETThese do not transfer. Document them so you can replicate with external tooling.
Bucket policies / ACLsaws s3api get-bucket-policy --bucket BUCKETQuake 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:

ProviderEgress modelNotes
AWS S3Per-GB metered, with migration credits by requestEgress 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 StoragePer-GB meteredNo free migration program; see GCS pricing
Azure BlobPer-GB meteredNo free migration program; see Azure bandwidth pricing
Hetzner Object StorageIncluded in planNo egress fees
DigitalOcean SpacesPer-GiB after included allowanceSee DigitalOcean Spaces pricing
Backblaze B2Per-GB metered, with Cloudflare Bandwidth Alliance carve-outFree egress to Cloudflare under the Bandwidth Alliance; see the Backblaze Cloudflare integration docs for current terms and B2 pricing
WasabiFree within a fair-use capFree 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.

  1. Follow create S3 credentials to generate a key pair.
  2. Note your region endpoint:
    • object.us-east-1.rumble.cloud
    • object.us-east-2.rumble.cloud
    • object.us-west-1.rumble.cloud
  3. Set the S3 region to us-east-1 for AWS Signature Version 4 compatibility (required regardless of which Quake AI region you use).

Choose a migration strategy#

StrategyWhen to useHow it works
Big-bangSmall data sets (under 100 GB), tolerance for brief downtimeSingle rclone sync, cut over applications, decommission source.
PhasedLarge data sets, cannot tolerate downtimeInitial bulk copy → incremental delta syncs on a schedule → final sync at cutover.
Continuous syncMulti-cloud or gradual migrationOngoing 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:

bash
rclone delete quakeai:my-bucket --min-age 90d

Run this on a cron schedule to expire objects older than your retention period.

With a shell script:

bash
#!/bin/bash
BUCKET="my-bucket"
RETENTION_DAYS=90
rclone delete "quakeai:${BUCKET}" --min-age "${RETENTION_DAYS}d" --verbose

Validation checklist#

Run these checks after each migration or sync pass:

  • Object count matches: Compare source and destination: rclone size source:bucket vs rclone 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:

  1. Run daily rclone check between source and destination to catch drift.
  2. If issues arise, revert your application's endpoint configuration to the source provider.
  3. After 30 days with no issues, decommission the source and cancel the source provider subscription.

Next steps#

Quick answers

Was this page helpful?