Title: KAZCODE Universal Storage
Author: kazmij
Published: <strong>ସେପ୍ଟେମ୍ବର 7, 2026</strong>
Last modified: ସେପ୍ଟେମ୍ବର 8, 2026

---

Search plugins

![](https://ps.w.org/kazcode-universal-storage/assets/banner-772x250.png?rev=3686778)

![](https://ps.w.org/kazcode-universal-storage/assets/icon-256x256.png?rev=3686778)

# KAZCODE Universal Storage

 By [kazmij](https://profiles.wordpress.org/kazmij/)

[Download](https://downloads.wordpress.org/plugin/kazcode-universal-storage.1.0.1.zip)

 * [Details](https://ory.wordpress.org/plugins/kazcode-universal-storage/#description)
 * [Reviews](https://ory.wordpress.org/plugins/kazcode-universal-storage/#reviews)
 *  [Installation](https://ory.wordpress.org/plugins/kazcode-universal-storage/#installation)
 * [Development](https://ory.wordpress.org/plugins/kazcode-universal-storage/#developers)

 [Support](https://wordpress.org/support/plugin/kazcode-universal-storage/)

## Description

KAZCODE Universal Storage moves your Media Library’s binary files — originals and
every generated image size — to S3 or S3-compatible storage, and can serve them 
from your bucket or a CDN. WordPress stays the source of truth: attachment posts,
titles, alt text, and metadata never leave your database.

 * Auto-offload new uploads and generated sizes (per-object inventory and partial/
   retry-safe uploads)
 * A storage profile with admin CRUD and profile-scoped delivery URLs
 * Dashboard, Media, Storage, Migration, Health, and Logs admin screens
 * Migrate, verify, restore, adopt-existing, health scan, and repair tools
 * Provider presets (AWS, Cloudflare R2, DigitalOcean Spaces, MinIO, Wasabi, Backblaze
   B2)
 * WP-CLI, REST batch APIs, and resumable background jobs
 * Optional Pro add-on for multiple storage profiles, cross-provider migration wizard,
   orphan scan, and advanced health tools — a separate plugin, not a trial or license
   key on this one

Theme and plugin static assets are never rewritten — only Media Library attachments.

### External Services

KAZCODE Universal Storage connects only to object-storage services explicitly selected
and configured by the site administrator. It does not send media, credentials, telemetry,
or site data to any KAZCODE-owned service, and KAZCODE does not proxy your media
through its own servers.

The plugin can connect to Amazon S3, Cloudflare R2, DigitalOcean Spaces, Wasabi,
Backblaze B2 through its S3-compatible API, MinIO, or another administrator-supplied
S3-compatible endpoint. An account with the selected storage provider may be required.
Connections occur only when the administrator configures or tests storage, or uses
storage operations such as upload/offload, download/restore, HEAD/verification, 
migration/adoption of existing objects, or remote delete when that behavior is configured.

Media files and storage API requests move directly between this WordPress site and
the administrator-selected storage provider. Credentials are used only to authenticate
to the configured storage provider and are not sent to KAZCODE servers. Data sent
to the configured provider can include media/object binary data, object keys and
paths, and metadata or protocol fields required by the S3-compatible API.

Amazon S3 — https://aws.amazon.com/s3/
 Customer Agreement: https://aws.amazon.com/
agreement/ — Privacy: https://aws.amazon.com/privacy/

Cloudflare R2 — https://developers.cloudflare.com/r2/
 Terms: https://www.cloudflare.
com/legal/terms/ — Privacy: https://www.cloudflare.com/privacypolicy/

DigitalOcean Spaces — https://www.digitalocean.com/products/spaces
 Terms: https://
www.digitalocean.com/legal/terms-of-service-agreement — Privacy: https://www.digitalocean.
com/legal/privacy-policy

Wasabi Object Storage — https://wasabi.com/product-terms
 Legal: https://wasabi.
com/legal — Privacy: https://wasabi.com/legal/privacy-policy

Backblaze B2 Cloud Storage — https://www.backblaze.com/cloud-storage
 Terms: https://
www.backblaze.com/company/policy/terms-of-service — Privacy: https://www.backblaze.
com/company/policy/privacy

MinIO and other self-hosted or generic S3-compatible endpoints — the plugin talks
directly to the administrator-configured endpoint; applicable terms and privacy 
depend on whoever operates it, not on KAZCODE. (https://min.io/)

### Development

The human-readable development source and release build tools for KAZCODE Universal
Storage are maintained at:

https://github.com/kazmij/kazcode-universal-storage-free

Release builds use Composer and PHP-Scoper (third-party dependencies are namespace-
prefixed to avoid collisions with other plugins). Build instructions are in that
repository’s BUILD.md.

## Screenshots

[⌊Dashboard with storage status, media statistics, and health overview.⌉⌊Dashboard
with storage status, media statistics, and health overview.⌉[

Dashboard with storage status, media statistics, and health overview.

[⌊Configure Amazon S3, Cloudflare R2, or another S3-compatible storage endpoint.⌉⌊
Configure Amazon S3, Cloudflare R2, or another S3-compatible storage endpoint.⌉[

Configure Amazon S3, Cloudflare R2, or another S3-compatible storage endpoint.

[⌊Native WordPress Media Library with remote-storage status and actions.⌉⌊Native
WordPress Media Library with remote-storage status and actions.⌉[

Native WordPress Media Library with remote-storage status and actions.

[⌊Migrate existing WordPress media to object storage in resumable batches.⌉⌊Migrate
existing WordPress media to object storage in resumable batches.⌉[

Migrate existing WordPress media to object storage in resumable batches.

[⌊Verify storage health and repair missing or failed media objects.⌉⌊Verify storage
health and repair missing or failed media objects.⌉[

Verify storage health and repair missing or failed media objects.

[⌊Guided settings and connection testing before enabling offload.⌉⌊Guided settings
and connection testing before enabling offload.⌉[

Guided settings and connection testing before enabling offload.

## Installation

 1. Upload the plugin folder to `/wp-content/plugins/kazcode-universal-storage/`
 2. Activate through the **Plugins** menu
 3. Open **Universal Storage  Settings**, enter bucket credentials, and test the connection
 4. Enable offload and migrate existing media from **Universal Storage  Migration**

## FAQ

### Does this replace the Media Library?

No. WordPress keeps attachment records; S3 stores the binary files.

### Which S3 providers are supported?

AWS S3 and S3-compatible APIs (R2, Spaces, MinIO, Wasabi, B2, generic endpoint).

### What’s the difference between Free and Pro?

Free (this plugin) is a complete, non-trial product: automatic offload, migrate,
verify, retry, restore, one storage profile, and full native Media Library integration.
The separate Pro add-on unlocks multiple storage profiles with independent credentials,
cross-provider/cross-bucket migration with verify-before-switch, orphan scan, advanced
health, and multisite network defaults. Deactivating Pro never deletes data or breaks
media that’s already being served.

### Does this plugin connect to any external service?

Only the storage endpoint you configure yourself — Amazon S3, Cloudflare R2, DigitalOcean
Spaces, Wasabi, Backblaze B2, MinIO, or another S3-compatible service — using the
credentials and bucket you provide under Universal Storage  Storage. KAZCODE Universal
Storage does not send your media files, credentials, or site data to any KAZCODE-
owned server; there is no telemetry, tracking, or phone-home in this plugin.

### Does uninstalling delete my bucket files?

No. Uninstalling never deletes remote storage objects, never contacts your storage
provider, and never deletes WordPress attachments or local media files. By default
it only removes disposable runtime state (locks, caches, queued job state) and preserves
your storage profiles, credentials, and object inventory so a reinstall can recover
them. An explicit “Delete Universal Storage data when uninstalling” setting (off
by default) additionally removes that local plugin data — still never remote objects
or media — if you want a full local cleanup.

### Where can I find documentation?

Full documentation — installation, storage-provider setup, migration, restore, health,
WP-CLI, troubleshooting, and Pro — is at https://kazcode.net/universal-storage/docs/.

### Where can I get support?

Use this plugin’s WordPress.org support forum first. For direct contact, see https://
kazcode.net/universal-storage/support/ or reach KAZCODE at kazmij@gmail.com.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“KAZCODE Universal Storage” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ kazmij ](https://profiles.wordpress.org/kazmij/)

[Translate “KAZCODE Universal Storage” into your language.](https://translate.wordpress.org/projects/wp-plugins/kazcode-universal-storage)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/kazcode-universal-storage/),
check out the [SVN repository](https://plugins.svn.wordpress.org/kazcode-universal-storage/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/kazcode-universal-storage/)
by [RSS](https://plugins.trac.wordpress.org/log/kazcode-universal-storage/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.1

 * Strengthened remote verification before local media cleanup.
 * Improved recovery behavior during transient storage-provider failures.
 * Hardened shared-media and multi-profile object handling.
 * Fixed remote-only media compatibility with WordPress editor and REST workflows.
 * Improved restore and partial-failure safety.
 * Hardened concurrent attachment operations against stale workers.
 * Fixed Amazon S3 preset handling so stale custom endpoint settings cannot be reused
   for AWS connections.
 * Added a global admin control to disable onboarding tutorials across plugin screens.
 * Improved Composer and AWS SDK dependency isolation for compatibility with other
   plugins and Composer-based WordPress installations.

#### 1.0.0

 * First public release
 * Object inventory (`s3ms_objects`), storage profiles, derived attachment status,
   queue jobs
 * Admin IA: Dashboard, Media, Storage (profile CRUD), Migration, Health, Logs, 
   Settings
 * Partial upload handling, retry for failed/partial attachments, restore clears
   meta and inventory
 * Profile-scoped public URLs, storage migration wizard, health/repair/adopt tools
 * Free/Pro feature separation, with the Pro-only implementation physically packaged
   in the separate Pro add-on rather than shipped (gated) inside this plugin; default
   plan is Free/Lite unless the Pro add-on is active
 * PHP-Scoper release builds (`Kazcode\WpStorage\Vendor` prefix)

## Meta

 *  Version **1.0.1**
 *  Last updated **24 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.7 or higher **
 *  Tested up to **7.1**
 *  PHP version ** 8.3 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/kazcode-universal-storage/)
 * Tags
 * [amazon s3](https://ory.wordpress.org/plugins/tags/amazon-s3/)[cloudflare r2](https://ory.wordpress.org/plugins/tags/cloudflare-r2/)
   [media offload](https://ory.wordpress.org/plugins/tags/media-offload/)[object storage](https://ory.wordpress.org/plugins/tags/object-storage/)
   [s3](https://ory.wordpress.org/plugins/tags/s3/)
 *  [Advanced View](https://ory.wordpress.org/plugins/kazcode-universal-storage/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/kazcode-universal-storage/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/kazcode-universal-storage/reviews/)

## Contributors

 *   [ kazmij ](https://profiles.wordpress.org/kazmij/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/kazcode-universal-storage/)