Migration playbook

Migrate from Cloudinary
without losing metadata.

Move every Cloudinary asset to AWS S3, Bynder, AEM, Azure Blob, or any of 12 supported destinations. Streaming transfers, full metadata + tag + folder structure preservation, resume-on-failure, and live observability — built so a petabyte migration finishes this quarter, not next year.

Usage-based · no subscriptionMetadata + tags + folders preservedResume on failure12 destinations
Fiber-optic network switch — infrastructure handling high-throughput asset transfers
Petabyte-class infrastructurestreaming · resumable · audited per asset

Why teams leave Cloudinary

The four reasons we hear every month.

Cloudinary pricing scales unpredictably

Bandwidth + transformation credits compound. Teams that were comfortable at 5 TB face surprise quarterly invoices at 50 TB — most without a clean way to estimate the next tier.

Vendor lock-in by URL

Every asset reference in your codebase is a `res.cloudinary.com/...` URL. Switching providers without breaking image links across 8 years of content takes more engineering than the actual storage migration.

Transformation features rarely justify the markup

If you're using Cloudinary as a CDN with derivative generation, you're paying a premium for features your CDN + an on-the-fly image service (or pre-rendered variants) already cover.

Metadata and tags often live ONLY in Cloudinary

Years of contextual tags, structured metadata, and folder taxonomy sit inside the platform. A naive download/upload migration drops all of it — you start the destination with no organization.

How it works

Four steps from sign-up to finished migration.

01

Connect Cloudinary

Paste cloud_name + API key + API secret. We never store the secret in plain text — encrypted at rest, scoped to the connector.

02

Pick a destination

S3, Bynder, AEM, Azure Blob, GCS, Contentful, Dropbox, Google Drive, WordPress, FTP, SFTP, or local filesystem.

03

Start the migration

We stream assets directly — no intermediate downloads. Metadata, tags, folder paths, derived versions: all preserved.

04

Watch it complete

Live progress, per-asset audit log, resume-on-failure, and a downloadable report when the run finishes.

Schema-aware translation

Every Cloudinary field lands on the destination’s schema.

Cloudinary’s tags, context, folders, derived versions, and structured metadata translate field-by-field into the destination’s native schema — jcr: namespaces in AEM, user-metadata + tags on S3, Asset Type properties in Bynder, custom blob metadata in GCS. No silent drops.

Schema translation·live
99.4% mapped

Source

Cloudinary

Destination

AEM Assets

Resource type

image/upload

jcr:primaryType

dam:Asset

Cloudinary tags

brand · hero · spring-2026

cq:tags

brand/hero/spring-2026

Context · key-value

campaign=spring-2026

cq:metadata/campaign

spring-2026

Folder path

brand/hero/spring-2026

cq:collection

/content/dam/brand/hero/spring

Structured metadata

8 schema fields

jcr:content/metadata/*

8 preserved verbatim

Derived versions

12 eagers

renditions/*

12 sidecars generated

847 fields mapped · 6 derived versions · 14 metadata schemas
lossless · 0 dropped

What you actually get

Migration infrastructure, not a sync script.

Full metadata preservation

Cloudinary structured metadata, contextual tags, custom fields, and folder hierarchy land on the destination in the closest semantic form their schema supports.

Streaming transfers

Assets flow Cloudinary → destination without touching our disk. No download/upload double-handling, no failures from temp-disk full.

Resume on failure

A network blip mid-migration only retries the affected assets. Idempotent operations mean a re-run never double-uploads or corrupts the destination.

Audit-continuous

Per-asset audit row from source fetch to destination ACK. SOC 2 / GDPR / DPDP-friendly evidence trail without extra tooling.

Where Cloudinary assets can land

Pick any destination. We handle the schema translation.

Every destination has its own metadata model — S3 has user-metadata, Bynder has Asset Types and properties, AEM has jcr:content/metadata, GCS has custom blob metadata. Univaultport maps each Cloudinary field to the closest semantic match on the destination, never silently drops content.

AWS S3
Bynder
AEM Assets
Azure Blob
Google Cloud Storage
Contentful

+ 6 more (Contentful, Dropbox, Google Drive, WordPress, FTP, SFTP).

Still weighing where to go?

See our honest breakdown of the best Cloudinary alternatives — strengths, trade-offs, and pricing models — before you pick a destination.

Compare Cloudinary alternatives

Simple, usage-based pricing

Pay only for what you migrate.

No subscription, no per-asset fee, no minimum — and free credits on signup so you can run a real migration end-to-end before you pay anything. See the pricing page for current rates and enterprise options.

No subscription — pay per migration
Free credits to test before you pay
Metadata + renditions included
Enterprise & annual commit options

Cloudinary migration FAQ

The questions that come up before every cutover.

  • It depends on total volume and the destination throughput, but as a rough guide: 5 TB to S3 typically completes in 6-12 hours of wall time. We parallelise per-asset transfers up to the destination platform's rate limits, then back off gracefully. The dashboard shows a live ETA based on observed throughput.

Migrate from Cloudinary
this quarter.

Sign up, connect Cloudinary, pick a destination, kick off a real migration. 1,000 free credits — no card required.