KAZCODE Universal Storage

KAZCODE Universal Storage

Reliable cloud & object storage for WordPress

Offload, migrate, restore and verify WordPress media on Amazon S3, Cloudflare R2, and supported S3-compatible storage. WordPress keeps control of your Media Library — only the binary files move.

Free · GPLv2+ · WordPress 6.7+ · PHP 8.3+ · SHA-256 checksum · GitHub Release — v1.0.1

WordPress.org listing pending review. You can install Free manually now.

Built for serious WordPress media libraries

Keep the native Media Library

Editors keep using WordPress normally — Grid/List, the media modal, Featured Image and Gutenberg all continue to work exactly as before.

Move media off the web server

Store media binaries in object storage without replacing WordPress attachment records or metadata — WordPress stays the source of truth.

Migrate without starting over

Existing Media Libraries move in recorded attachment batches, with per-object verification and retry — completed attachments do not need to be migrated again.

Restore when you need to

Bring remote media back to local storage on demand. The workflow is not one-way, and restore is never gated behind a paid upgrade.

Supported storage

Amazon S3, popular S3-compatible providers, and custom S3-compatible endpoints.

Amazon S3
Cloudflare R2
DigitalOcean Spaces
Wasabi
Backblaze B2
MinIO
Custom S3-compatible

Designed for WordPress

Attachment posts and metadata always stay controlled by WordPress — this plugin never replaces the Media Library, it moves the binary files out from under it.

  • Delivery URLs are generated from your current storage configuration rather than permanently stored — nothing is locked in
  • Changing your CDN hostname or storage provider never requires rebuilding your WordPress attachment records
  • Local hosting disk is no longer the only place your media can live — application hosting and media storage become separate concerns

For the implementation-level detail on how attachment paths and delivery URLs resolve, see URLs not updating in the docs.

Move WordPress media from S3 to R2 safely

PRO

Migrate between storage providers without replacing WordPress attachments or rebuilding your Media Library. KAZCODE Universal Storage Pro copies objects to the destination, verifies them there, and only then switches delivery to the new storage profile.

Amazon S3 → Cloudflare R2

  • Independent source and destination credentials
  • Resumable migration, per-object tracking
  • Source delivery keeps serving your site until the destination is verified
  • Verify-before-switch — delivery only changes after the destination is confirmed
  • WordPress attachment metadata remains intact throughout
Read the migration guide

Built for WordPress sites that outgrow local media storage

WordPress developers

Control where media binaries live without replacing the native Media Library or rewriting attachment logic.

Agencies

Operate and migrate storage across client sites with reliable, verified recovery tools built in.

Large media libraries

Move originals and every generated image size to object storage while WordPress attachment metadata stays intact.

WooCommerce & content-heavy sites

Keep large product and content libraries off the local hosting filesystem while preserving familiar WordPress workflows.

How it works

  1. Connect a storage profile — bucket, region, credentials
  2. Test the connection
  3. Turn on offload for new uploads
  4. Migrate existing media in resumable batches
  5. Verify remote objects against your bucket
  6. Optionally remove local copies once verified
  7. Restore to local storage any time you need to
KAZCODE Universal Storage Dashboard in wp-admin, showing connection, offload and object inventory status

The Universal Storage Dashboard in wp-admin

Free

A complete, standalone product — not a trial.

  • Automatic offload of new uploads and every generated image size
  • Migrate existing media in resumable batches (dry-run, retry-failed, verify modes)
  • Restore media back to local disk on demand — nothing is one-way
  • Repair: re-upload or re-verify individual objects without touching everything else
  • Native Media Library integration — Grid/List, media modal, Featured Image, Gutenberg
  • Health checks, WP-CLI, REST API
  • One storage profile, no upload limits, no time limits — not a trial

Pro ADD-ON

A separate add-on for teams, agencies and advanced deployments that need multiple storage destinations and cross-provider operations.

  • Multiple storage profiles, each with independent credentials
  • Cross-provider / cross-bucket migration (e.g. Amazon S3 → Cloudflare R2), verify-before-switch
  • Orphan scan — dry-run only, reports, never deletes
  • Advanced health and reconcile tools
  • Multisite network defaults

KAZCODE Universal Storage Pro

Advanced storage management for professional WordPress sites.

Pro is a separate add-on — Free must remain installed and active. All Pro plans include the same feature set; plans differ only by the number of licensed sites. Billing is annual, and updates and support are included while your subscription is active.

Single Site

$79/year

1 WordPress site

Buy Pro
Most popular 5 Sites

$149/year

Up to 5 WordPress sites

Buy Pro
20 Sites

$249/year

Up to 20 WordPress sites

Buy Pro

What's included

  • Multiple storage profiles
  • Independent credentials per storage profile
  • Cross-provider migration
  • Cross-bucket migration
  • Verify-before-switch migration
  • Orphan object scan
  • Advanced storage health and reconciliation
  • WordPress Multisite network defaults
  • Annual billing
  • The same Pro features on every plan — plans differ only by licensed site count
  • Secure checkout powered by Freemius
  • 14-day money-back guarantee
  • Updates and support included while your subscription is active
  • KAZCODE Universal Storage Pro requires the Free plugin to remain installed and active

Your installed Pro functionality continues to work after subscription expiry; renewal is required for future updates and support.

Built to be trusted with your media

  • WordPress remains the source of truth for every attachment
  • Every generated image size is tracked and verified independently, not just the attachment as a whole
  • Local files are only removed after a successful remote verification — there is no setting that skips this
  • Restore, verify and basic repair are Free capabilities, never gated behind a paid upgrade
  • Batch migrations resume from recorded attachment progress, so completed attachments do not need to be migrated again
  • Cross-provider migration (Pro) verifies the destination before delivery ever switches to it
  • No KAZCODE-owned media proxy and no telemetry in Free — the plugin only talks to the storage endpoint you configure

Frequently asked questions

Does it replace the WordPress Media Library?

No. WordPress keeps attachment posts, metadata, titles and alt text. Only the binary files — originals and every generated size — move to object storage.

Can I restore media back to WordPress?

Yes. Restore downloads files back into wp-content/uploads on demand. It is a Free capability and is never gated behind Pro.

Does it support Cloudflare R2?

Yes, alongside Amazon S3, DigitalOcean Spaces, Wasabi, Backblaze B2, MinIO, and other S3-compatible endpoints.

Can I migrate from Amazon S3 to Cloudflare R2?

Yes — cross-provider migration with verify-before-switch safety is a KAZCODE Universal Storage Pro capability.

Is Free a trial?

No. Free is a complete, standalone product — one storage profile, full offload/migrate/verify/restore, no upload or time limits.

What happens if I deactivate Pro?

Deactivating Pro never deletes data or breaks media that's already being served. Existing profiles, credentials and delivery keep working; only new premium operations become unavailable until reactivated.

Does KAZCODE receive my media files or credentials?

No. The plugin only connects to the storage endpoint you configure yourself. There is no telemetry, tracking, or phone-home to any KAZCODE-owned service.

How do I buy Universal Storage Pro?

Choose a Pro plan on the pricing section below. Checkout and license management are handled securely through Freemius.

Does Pro replace the Free plugin?

No. Pro is a separate add-on and requires Free to remain installed and active.

What happens if I do not renew?

Your installed Pro functionality continues to work; renewal is required for future updates and support.

Read the documentation

Installation, storage-provider setup, migration, restore, health, WP-CLI, and troubleshooting.

Open the docs