This Quake AI feature maps to AWS’s Amazon S3, S3 Migration.
Migrate your data from AWS S3 to Quake AI
In this migration guide, you'll move data from an AWS S3 bucket to Quake AI object storage using rclone. By the end, you will have migrated a complete bucket with integrity verification, identified where Quake AI's S3 compatibility has limits, and have a tested procedure you can apply to the rest of your buckets.
You'll walk through the full migration methodology: inventory your source data, check for compatibility gaps, run a pilot migration on one bucket, validate that every object arrived intact, and then update your application to use the new endpoint. Each step explains why it matters so you can adapt the process to your own situation.
What you will learn:
How to inventory an AWS S3 bucket and estimate migration time
Which S3 features Quake AI supports and which it does not (and what to do about gaps)
How to configure rclone to copy data between two S3-compatible providers
How to validate a migration with checksum verification
How to update your application's S3 endpoint with zero data loss
How to run both endpoints in parallel during a transition period
Time estimate: 45–60 minutes (excluding data transfer time, which depends on bucket size)
Click to zoom
What you'll build: a five-step migration: inventory the source, check compatibility, pilot one bucket, validate checksums, then cut the application over to Quake AI.
With AWS S3 pricing, you pay for storage, requests, data retrieval, and egress separately, with different rates for different storage classes. Quake AI charges a flat rate per TB with unlimited data transfer included. No egress fees, no request-tier pricing.
Before copying anything, we need to know what we are migrating. Counting objects and measuring total size upfront helps you estimate transfer time and catch surprises (like a bucket that is larger than expected).
List the bucket contents and count objects:
bash
aws s3 ls s3://YOUR_SOURCE_BUCKET --recursive --summarize
The --summarize flag prints total object count and total size at the end. Note both numbers.
For a more detailed breakdown by prefix (folder), use:
bash
aws s3 ls s3://YOUR_SOURCE_BUCKET --recursive | awk '{sum += $3; count++} END {printf "Objects: %d\nTotal size: %.2f GB\n", count, sum/1024/1024/1024}'
Record these numbers. We use them after the migration to verify nothing was lost.
Estimate transfer time: At a typical home connection (50 Mbps upload), 100 GB takes about 4.5 hours. At a datacenter connection (1 Gbps), the same transfer takes about 15 minutes. Plan your migration window accordingly.
Quake AI's object storage is S3-compatible, but not S3-identical. It runs on OpenStack Swift with an S3 gateway. Most S3 operations work without modification, but some AWS-specific features are not supported.
What works:
s3:GetObject, s3:PutObject, s3:DeleteObject, s3:ListBucket: all standard CRUD operations
Multipart uploads (rclone handles this automatically for large files)
Basic Allow/Deny works; condition keys are limited
S3 Storage Classes (Glacier, IA)
Not supported
All objects use standard storage
S3 Inventory reports
Not supported
Use rclone ls or aws s3 ls for inventory
Cross-region replication
Not supported
Use rclone sync between regions if needed
If your application depends on lifecycle policies or event notifications. You will need to replace those features before switching over. For most applications (file storage, static assets, backups, media hosting), the compatibility is sufficient.
Replace the placeholder values with your actual credentials.
Quake AI's object storage runs on OpenStack Swift with an S3 gateway. The provider = Ceph setting is a hint that adjusts how rclone shapes its requests (region handling, list-buckets behavior, retry semantics) for non-AWS S3-compatible services, and it is the recommended setting for Quake AI because it avoids a handful of AWS-specific edge cases. provider = AWS against the same endpoint = object.us-east-1.rumble.cloud also works, so either value will list buckets and copy objects.
Protect the config file. The block you pasted contains plaintext AWS and Quake AI S3 secrets, and a default Linux file mode leaves the config world-readable to other local accounts.
bash
chmod 600 ~/.config/rclone/rclone.conf
Verify both remotes work:
bash
rclone lsd aws:rclone lsd quakeai:
Each command should list your buckets on the respective provider. If either fails, check the credentials and endpoint.
Create a bucket on Quake AI to receive the migrated data. We use the same name as the source bucket when possible: this simplifies endpoint switching later.
bash
rclone mkdir quakeai:YOUR_SOURCE_BUCKET
Quake AI bucket names are unique within your project, not globally unique like AWS S3. Unless a bucket with the source name already exists inside your own Quake AI project, the name is available and you can keep it. Reusing the source name makes the endpoint swap in Step 8 a one-line change. If you do hit a name collision in your own project (for example, you created a test bucket with that name earlier), pick a different name and record the mapping:
We start with a small subset of data, not the entire bucket. This validates that the configuration works, metadata transfers correctly, and the transfer speed meets expectations.
Copy a single prefix (folder) from AWS to Quake AI:
--transfers 16 and --checkers 32 increase parallelism for faster throughput
--fast-list uses fewer API calls to list objects (faster for large buckets, uses more memory)
--log-file writes a detailed log for post-migration review
--log-level INFO logs each transferred file
For buckets over 100 GB, consider running the migration from a VM in the same region as either the source or destination. This avoids routing data through your local machine and can be 10x faster.
rclone check --one-way verifies that every file in the source exists at the destination with matching size and checksum. It does not transfer any data; it only compares.
The output reports:
Files that match (good)
Files that differ in size or checksum (investigate)
Files that exist in the source but not the destination (re-transfer)
If all files match, the migration is verified. If some files differ, re-run the rclone copy command: it will only transfer the mismatched files.
For a final count comparison:
bash
echo "AWS objects:"rclone size aws:YOUR_SOURCE_BUCKETecho "Quake AI objects:"rclone size quakeai:YOUR_SOURCE_BUCKET
Both should report the same object count and total size.
With the data verified on Quake AI, the last step is pointing your application at the new endpoint. The beauty of S3 compatibility is that this is a configuration change, not a code change.
Inventoried a source bucket to understand what you were migrating and estimate transfer time
Checked S3 compatibility to identify features that work differently on Quake AI (lifecycle policies, event notifications)
Configured rclone as a bridge between AWS S3 and Quake AI
Ran a pilot migration on a single prefix to validate the configuration before committing to the full transfer
Migrated the entire bucket with parallel transfers, metadata preservation, and logging
Validated integrity with checksum comparison to prove every object arrived intact
Updated the application endpoint: a configuration change, not a code rewrite
This process works for any S3-compatible source, not only AWS. Replace the [aws] remote with any provider rclone supports: DigitalOcean Spaces, Backblaze B2, Google Cloud Storage, Hetzner, Wasabi. The same steps apply.
Do not delete the source bucket until you are certain the migration is complete and your application is fully operational on Quake AI.
Usage Guidelines
The sample code, software libraries, command line tools, proofs of concept, templates, and other related technology on this page (including any of the foregoing that is provided by Quake AI personnel) is provided to you as Quake AI Content under the Quake AI Customer Agreement, or the relevant written agreement between you and Quake AI (whichever applies). Do not use this Quake AI Content in your production accounts, or on production or other critical data. You are responsible for testing, securing, and optimizing the Quake AI Content (such as sample code) as appropriate for production grade use based on your specific quality control practices and standards. Deploying Quake AI Content may incur Quake AI charges for creating or using Quake AI chargeable resources, such as running Compute instances or storing data in Object Storage. Your use is also subject to the Acceptable Use Policy.
Comparisons to third-party providers in this material reflect publicly documented behavior as of the validation date below. Pricing, quotas, service limits, and feature availability change frequently on every cloud. Verify provider-specific claims against the provider's own current documentation before relying on them for a procurement, architecture, or migration decision.