Free downloads

Zinn® Media Offload

Move your media library to object storage and serve it from a CDN — no access key in WordPress.

Download zip (616 KB)

What Zinn® Media Offload does

Images and video are usually the largest and slowest thing a WordPress site serves. This plugin moves your media library to Zinn® object storage and serves it from a CDN, so your web server stops sending the bytes. Uploads go straight from your server to storage, and existing media moves across in the background.

Why it matters

You never enter an access key, and that is the difference between this plugin and the rest of the category. Every other media-offload plugin asks you to paste an S3 key and secret into WordPress, where they sit in the options table — readable by every other plugin on the site, copied into every migration export, and included in the backup you send to a developer. A leaked pair is your entire bucket. Here the plugin holds a token scoped to this site's folder and nothing else, and you revoke it from your dashboard in one click, which is not something you can do to a leaked access key.

What is in it

Every size, not just the original

New uploads go to storage complete: the original file and every thumbnail size WordPress generates. A half-offloaded library is how broken images appear months later, on the one size nobody tested.

URLs rewritten, srcset included

Image URLs are rewritten to your CDN address, including the srcset responsive set — so phones get the small file from the edge too, not just desktops getting the large one.

Your existing library migrates itself

Media already in the library moves in the background, a few files at a time, and picks up exactly where it left off. A twenty-year archive does not need a maintenance window.

Local copies removed only when it is safe

Local files are deleted after offload only if you ask for it, and only once every size has uploaded successfully. If any single size fails, every local copy stays where it is.

No settings of its own

Which bucket, whether URLs are rewritten, whether local copies are removed — all decided in your Zinn Digital® dashboard. There is only ever one place an answer lives, so a site and a panel can never disagree about what is configured.

What it looks like

The whole screen is one pairing code. There is nowhere to type an access key, because this site never holds one.

The Zinn® Media Offload settings screen in wp-admin, with a pairing-code field and no access-key field

What you are downloading

Version
1.1.2
Minimum WordPress
WordPress 6.6
Minimum PHP
PHP 8.2
Tested up to
WordPress 7.1
Download size
616 KB
Licence
GNU General Public License, version 2 or later
Written by
Neil Lock — CEO, Zinn Digital® Ltd

What Zinn® Media Offload needs

WordPress 6.6 or later and PHP 8.2 or later. A Zinn Digital® account with object storage enabled for this site, and outbound HTTPS from your web server.

How you get Zinn® Media Offload

Turn media offload on in your Zinn Digital® dashboard, install this plugin, and paste the pairing code once. Everything after that is configured from the dashboard.

Read the article

Source on GitHub

Built to WordPress.org plugin-directory standards: the WordPress Coding Standards, a security review, no PHP notices, and translation-ready in every language we sell in.

Installing it

WordPress installs a plugin from a zip file without you unpacking anything. The whole thing takes about a minute, and you need an administrator account on the site.

  1. Download the zip

    Use the download button above. Keep the file as it is — do not unzip it, because WordPress expects the archive itself.

  2. Open Plugins → Add New Plugin in wp-admin

    Sign in to your site's wp-admin, open Plugins in the left-hand menu, then Add New Plugin at the top of the page.

  3. Upload and install

    Choose Upload Plugin, select the zip you just downloaded, then Install Now. WordPress unpacks it for you.

  4. Activate it

    Choose Activate Plugin when the upload finishes. The plugin's own settings then appear in wp-admin — nothing else is required to start using it.

Checking the file is ours

This is code that will run on your site, so you should be able to prove the file you downloaded is the file we published. Run the command for your computer against the zip and compare the result with the checksum below — they must match exactly, character for character.

SHA-256
5e6d99415e0106868cf9ae0d5a8b8810531bebfb60c92b2795a7c6f0839f6f9c
On Linux
sha256sum zinn-offload-1.1.2.zip
On macOS
shasum -a 256 zinn-offload-1.1.2.zip
On Windows
certutil -hashfile zinn-offload-1.1.2.zip SHA256

The download itself also returns the same value in an X-Zinn-Package-SHA256 header, so an automated deployment can check it without reading this page.

Changelog

1.0.0 — first release: keyless pairing, per-upload signed links, all thumbnail sizes, srcset rewriting, resumable background migration of existing media, and optional local-copy removal gated on a fully successful upload.

Every release on GitHub

Updates

On a site we host, these plugins are configured to update themselves: they check with us and WordPress installs the new version for you, with the download verified against its published checksum first. On a WordPress we do not host, there is nothing to configure and nothing phones home — come back to this page when you want the newest version, or watch the plugin's GitHub releases.

Get Zinn® Media Offload working on a real site

Every plugin here is free and runs on any WordPress. On a site we host they are installed and kept current for you, so there is nothing to download and nothing to update.

See the hosting

All WordPress plugins