plugin-icon

Defyn Media Offload

Di Defyn·
Offload WordPress media to Amazon S3, DigitalOcean Spaces, Wasabi, Cloudflare R2 or MinIO, serve images from a CDN, and reclaim server disk space.
Versione
1.0.0
Ultimo aggiornamento
Jun 26, 2026
Defyn Media Offload

Defyn Media Offload moves your WordPress media library to S3-compatible object storage and serves every image, video and document from a fast content delivery network (CDN), then optionally deletes the local copies so your site fits within strict host disk and storage limits.

It works with Amazon S3, DigitalOcean Spaces, Cloudflare R2, Wasabi, Backblaze B2, Google Cloud Storage (in S3 mode), MinIO and any other S3-compatible object store. Offloading your uploads to cloud storage frees up server disk space, shrinks your backups, lowers bandwidth costs, and lets a global CDN deliver your images faster.

It was built for a large WooCommerce and multi-vendor marketplace on managed WordPress (where Jetpack’s image CDN virtualises some thumbnail sizes), so it is hardened against the edge cases that break naive media offload plugins.

Key features

  • Automatic offload on upload, after all thumbnail sizes are generated, including front-end (vendor) uploads.
  • Serves product images, galleries, variation images, responsive srcset, REST API URLs and content-embedded images from the CDN.
  • Resumable, cursor-based bulk migration for very large libraries (survives dropped SSH sessions). WP-CLI is the supported path; a browser-driven runner and Action Scheduler background runner are also provided.
  • Optional, decoupled “remove local” pass so migration and deletion stay safe and reversible.
  • Optional mirror-delete: removing an attachment removes its objects from the store.
  • Handles Jetpack “virtual” thumbnail sizes (skip-and-log, never stalls).
  • WooCommerce downloadable/protected files are stored privately and never made public-read.
  • Works with the AWS SDK for PHP v3, namespace-isolated with php-scoper so it never conflicts with other plugins’ bundled AWS SDK.

Configuration

For best security, define credentials as constants in wp-config.php:

define( 'OSMO_KEY', 'your-access-key' ); define( 'OSMO_SECRET', 'your-secret-key' ); define( 'OSMO_BUCKET', 'your-bucket' ); define( 'OSMO_REGION', 'syd1' ); define( 'OSMO_ENDPOINT', 'https://syd1.digitaloceanspaces.com' ); define( 'OSMO_CDN', 'https://cdn.example.com' );

Otherwise enter them on Media Media Offload.

External services

This plugin connects to one external service: the S3-compatible object storage endpoint that you configure (for example DigitalOcean Spaces, Amazon S3, Wasabi, or a self-hosted MinIO server). It is used to store and serve your media files.

  • What is sent, and when: when you upload media (or run a migration), the media files and their object keys (the uploads-relative path, e.g. 2026/06/image.jpg) are uploaded to the bucket you configured, using the access key and secret you provide. URL rewriting and verification read object keys back from the same bucket.
  • The plugin does not contact any other server. It does not collect analytics, telemetry, or usage data, and it never “phones home” to the author.
  • You must supply your own credentials and accept the terms and privacy policy of whichever storage provider you choose. DigitalOcean Spaces: https://www.digitalocean.com/legal/terms-of-service-agreement / https://www.digitalocean.com/legal/privacy-policy . Amazon S3: https://aws.amazon.com/service-terms/ / https://aws.amazon.com/privacy/ .

Third-party libraries

This plugin bundles the AWS SDK for PHP v3 (Apache License 2.0, GPL-compatible) and its dependencies (Guzzle, PSR interfaces, JMESPath, Symfony polyfills). The SDK is namespace-isolated under OSMO\Vendor\ using php-scoper so it never conflicts with an AWS SDK bundled by another plugin. This is namespacing, not obfuscation, and the bundled PHP remains fully human-readable.

The full source code and the build tooling (composer.json, scoper.inc.php, build.sh, and the post-scope patch helpers in bin/) are available so the bundled vendor/ directory can be reproduced from scratch with bash build.sh.

Gratuitosui piani a pagamento
Testato fino alla versione
WordPress 7.0
Questo plugin ora può essere scaricato per il tuo sito .