Skip to content

How to Migrate from Azure blob storage to Quake AI

How-to · Updated Sep 2026

Coming from another cloud?

▸Azure·Blob Storage, Blob versioning

Blob versioningmedium

  • Both support versioning via S3 API in Quake AI and Blob REST API in Azure, but Azure automatic on write/delete for supported accounts; Swift native uses container headers (X-Versions-Location) requiring archive container, two modes differing on DELETE behavior.
  • Azure versions immutable, one current version; Swift POST metadata doesn't version, DELETE promotes or moves to history based on mode.
  • Azure integrates with soft delete/lifecycle; Swift S3 emulation may differ in delete markers/version listing behaviors from pure S3.
Azure docs ↗
Before this

How to migrate from Azure blob storage to Quake AI

This guide walks through migrating objects from an Azure Blob Storage container to Quake AI object storage using rclone for direct cloud-to-cloud transfer.

Service mapping#

Azure to Quake AI

Azure serviceQuake AI equivalentKey difference
Blob StorageObject storageNo notable divergence
RBAC / ABAC / SASObject storageAzure uses RBAC/ABAC with Entra ID (AAD), SAS, shared keys; Quake AI/OpenStack Swift S3 uses Keystone/S3 token auth mapped to Swift ACLs,... see details
Blob lifecycle managementS3Azure supports automated tiering (hot/cool/cold/archive) and expiration rules based on age, access time; Quake AI Swift S3 API lacks native... see details
N/A (No native S3 API — Azure Blob Storage REST API only)S3 CompatibilityAzure Blob Storage has no native S3-compatible endpoint; S3 compatibility requires third-party gateways (Flexify.IO, S3Proxy). Applications... see details
Blob versioningVersioningBoth support versioning via S3 API in Quake AI and Blob REST API in Azure, but Azure automatic on write/delete for supported accounts;... see details

Prerequisites#

  • A Quake AI account with S3 credentials
  • An Azure Storage Account SAS token with Read and List permissions, or an Azure service principal with Storage Blob Data Reader role
  • rclone installed (v1.65+)

Before you start#

Read the migration planning guide to review S3/Swift feature compatibility and build a validation checklist.

Azure-specific considerations:

  • Terminology mapping: Azure uses "containers" (equivalent to S3 buckets) and "blobs" (equivalent to S3 objects). Quake AI uses both "containers" and "buckets" interchangeably.
  • Access tiers: Azure Blob offers Hot, Cool, Cold, and Archive tiers, plus a smart tier option that automatically moves data across the Hot, Cool, and Cold tiers based on access patterns (it does not cover Archive). Data on Quake AI is stored on a single tier. Two Azure tier behaviors affect migration timing and cost:
    • Minimum retention and early deletion: Azure sets a minimum retention period for cooler tiers: 30 days for Cool, 90 days for Cold, and 180 days for Archive. If you delete source objects after migrating them, objects still inside their minimum period incur an early deletion fee. Check each object's tier and age before you clean up the source.
    • Archive rehydration: Objects in the Archive tier must be rehydrated before they can be copied. Standard-priority rehydration can take up to 15 hours; high-priority rehydration can finish in under 1 hour for objects under 10 GB but costs more. Rehydration incurs a per-GB fee.
  • RBAC and ABAC: Azure uses Entra ID (Azure AD) with RBAC and ABAC policies. These do not translate to Swift ACLs. Re-apply access controls on Quake AI using grant access control.
  • Lifecycle management: Azure lifecycle policies (tier transitions, expiration) are not supported on Quake AI. See retention without lifecycle policies.
  • Hierarchical namespace (ADLS Gen2): If your Azure Storage Account has hierarchical namespace enabled (Azure Data Lake Storage Gen2), rclone's azureblob backend supports it but may require adls = true in the remote config, and SAS token scoping can differ. Verify your settings against the rclone Azure Blob documentation.

Configure rclone remotes#

Using a SAS token#

Generate a SAS token in the Azure portal: Storage Account > Shared access signature > grant Read and List > generate.

Add both remotes to ~/.config/rclone/rclone.conf:

ini
[azure]
type = azureblob
account = YOUR_STORAGE_ACCOUNT_NAME
sas_url = https://YOUR_ACCOUNT.blob.core.windows.net/?YOUR_SAS_TOKEN

[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

Using a service principal#

ini
[azure]
type = azureblob
account = YOUR_STORAGE_ACCOUNT_NAME
tenant = YOUR_TENANT_ID
client_id = YOUR_CLIENT_ID
client_secret = YOUR_CLIENT_SECRET

Verify both remotes:

bash
rclone lsd azure:
rclone lsd quakeai:

Create the destination bucket#

bash
rclone mkdir quakeai:my-bucket

Run the migration#

Initial copy#

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

Delta syncs#

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

Schedule daily until cutover.

Estimate egress cost#

Azure charges per-GB for egress, with rates that vary by region. Azure does not currently run a free egress program for migrations. For current rates, see the Azure bandwidth pricing page.

For large data sets, consider a phased migration or check if your Azure support plan includes migration credits.

Verify the migration#

bash
rclone size azure:my-source-container
rclone size quakeai:my-bucket

Check file integrity:

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

See the validation checklist for the full procedure.

Cut over#

  1. Run a final rclone sync.
  2. Update your application's storage endpoint. See update application endpoint.
  3. Keep the Azure source container for 30 days as a rollback target.

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?