How to Migrate from Google Cloud storage to Quake AI
Coming from another cloud?
▸Google Cloud·Storage, Object Versioning
Object Versioning
- GCP bucket-level enable, auto live/noncurrent via generation/metageneration, DELETE noncurrent permanent (w/gen), costs all versions + lifecycle mgmt; Swift container-level X-Versions/Histor y-Location modes (archive on PUT/DELETE, naming <len>obj/ts>), middleware required, DELETE behavior mode-dependent (restore vs archive).
- GCP soft delete separate/interactive; Swift no soft delete mention.
- GCP no manifest versioning; Swift same.
- GCP disable retains versions; Swift similar.
How to migrate from Google Cloud storage to Quake AI
This guide walks through migrating objects from a Google Cloud Storage (GCS) bucket to Quake AI object storage using rclone for direct cloud-to-cloud transfer.
Service mapping#
Google Cloud to Quake AI
| Google Cloud service | Quake AI equivalent | Key difference |
|---|---|---|
| Storage | Object storage | No notable divergence |
| Cloud Storage S3-compatible XML API | S3 Compatibility | GCP Cloud Storage has an S3-compatible XML API at storage.googleapis.com; auth uses HMAC keys generated separately from GCP service account... see details |
| Object Versioning | Versioning | GCP bucket-level enable, auto live/noncurrent via generation/metageneration, DELETE noncurrent permanent (w/gen), costs all versions +... see details |
Prerequisites#
- A Quake AI account with S3 credentials
- A GCS service account with the Storage Object Viewer role on the source bucket (or Storage Admin if you plan to delete after migration)
- A service account JSON key file downloaded from the Google Cloud Console
- rclone installed (v1.65+)
Before you start#
Read the migration planning guide to review S3/Swift feature compatibility and build a validation checklist.
GCS-specific considerations:
- Storage classes: GCS objects may be stored in Nearline, Coldline, or Archive classes. These classes have minimum storage duration charges (30, 90, and 365 days respectively). If you delete objects from GCS before the minimum duration, you are charged an early deletion fee. Factor this into your migration timeline.
- IAM permissions: GCS uses IAM roles (Storage Admin, Object Viewer). These do not translate to Swift ACLs. Re-apply access controls on Quake AI after migration using grant access control.
- Object Lifecycle rules: GCS lifecycle rules (SetStorageClass transitions, Delete actions) are not supported on Quake AI. Implement retention with external tooling. See retention without lifecycle policies.
Configure rclone remotes#
Add both GCS and Quake AI to ~/.config/rclone/rclone.conf:
[gcs]
type = google cloud storage
service_account_file = /path/to/service-account-key.json
project_number = YOUR_GCP_PROJECT_NUMBER
object_acl = private
bucket_acl = private
[quakeai]
type = s3
provider = Ceph
access_key_id = YOUR_RUMBLE_ACCESS_KEY
secret_access_key = YOUR_RUMBLE_SECRET_KEY
endpoint = object.us-east-2.rumble.cloud
acl = privateReplace object.us-east-2.rumble.cloud with your Quake AI region endpoint.
Verify both remotes:
rclone lsd gcs:
rclone lsd quakeai:Create the destination bucket#
rclone mkdir quakeai:my-bucketRun the migration#
Initial copy#
rclone copy gcs:my-source-bucket quakeai:my-bucket \
--transfers 16 \
--checkers 32 \
--s3-chunk-size 64M \
--progress \
--log-file migration.log \
--log-level INFODelta syncs#
Run incremental syncs to catch changes after the initial copy:
rclone sync gcs:my-source-bucket quakeai:my-bucket \
--transfers 16 \
--checkers 32 \
--progressSchedule this daily until you are ready to cut over.
Estimate egress cost#
GCS charges per-GB for egress, with rates that vary by region and destination. Google runs a free egress program for customers who close their Google Cloud account and complete the move within 60 days. A migration that keeps your GCP account active pays standard egress rates, so the egress meter dominates the bill for large data sets. Egress and exit terms change, so confirm the current policy on the Google Cloud Storage pricing page before you plan your timeline.
For large data sets, consider a phased migration to spread the cost across billing periods.
Verify the migration#
rclone size gcs:my-source-bucket
rclone size quakeai:my-bucketCheck file integrity on a sample:
rclone check gcs:my-source-bucket quakeai:my-bucket \
--one-way \
--log-file check.logReview check.log for any mismatches. See the validation checklist for the full procedure.
Cut over#
- Run a final
rclone syncto capture last-minute changes. - Update your application's storage endpoint. See update application endpoint.
- Keep the GCS source bucket for 30 days as a rollback target.
- Account for minimum storage duration charges before deleting Nearline/Coldline/Archive objects.
See also#
- Plan your migration: compatibility matrix, cost estimation, validation checklist
- Migration tools comparison: rclone configuration and alternatives
- Update application endpoint: swap SDK config to 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.
For the full policy, see Usage Guidelines.
Last validated: 08.09.2026
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
See Also
S3 on Quake AI
Prerequisite
How to Migrate from Azure blob storage to Quake AI
Shares: S3, Migration
How to Migrate from Backblaze B2 to Quake AI
Shares: S3, Migration
How to Migrate from DigitalOcean Spaces to Quake AI
Shares: S3, Migration
How to Migrate from Hetzner object storage to Quake AI
Shares: S3, Migration