Skip to content

How to Migrate from Google Cloud storage to Quake AI

How-to · Updated Sep 2026

Coming from another cloud?

▸Google Cloud·Storage, Object Versioning

Object Versioninghigh

  • 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.
Google Cloud docs ↗
Before this

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 serviceQuake AI equivalentKey difference
StorageObject storageNo notable divergence
Cloud Storage S3-compatible XML APIS3 CompatibilityGCP 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 VersioningVersioningGCP 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:

ini
[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 = private

Replace object.us-east-2.rumble.cloud with your Quake AI region endpoint.

Verify both remotes:

bash
rclone lsd gcs:
rclone lsd quakeai:

Create the destination bucket#

bash
rclone mkdir quakeai:my-bucket

Run the migration#

Initial copy#

bash
rclone copy gcs:my-source-bucket quakeai:my-bucket \
  --transfers 16 \
  --checkers 32 \
  --s3-chunk-size 64M \
  --progress \
  --log-file migration.log \
  --log-level INFO

Delta syncs#

Run incremental syncs to catch changes after the initial copy:

bash
rclone sync gcs:my-source-bucket quakeai:my-bucket \
  --transfers 16 \
  --checkers 32 \
  --progress

Schedule 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#

bash
rclone size gcs:my-source-bucket
rclone size quakeai:my-bucket

Check file integrity on a sample:

bash
rclone check gcs:my-source-bucket quakeai:my-bucket \
  --one-way \
  --log-file check.log

Review check.log for any mismatches. See the validation checklist for the full procedure.

Cut over#

  1. Run a final rclone sync to capture last-minute changes.
  2. Update your application's storage endpoint. See update application endpoint.
  3. Keep the GCS source bucket for 30 days as a rollback target.
  4. Account for minimum storage duration charges before deleting Nearline/Coldline/Archive objects.

See also#

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

Was this page helpful?