Описание
Images and video are usually the largest thing a WordPress site serves, and the slowest. This plugin moves your media library to object storage and serves it from a CDN, so your web server stops sending the bytes and your pages get faster everywhere in the world.
You never enter an access key. Your storage keys are never saved in WordPress, so they are not in your database, your migration exports or your backups.
You turn media offload on in your Zinn Digital® dashboard, paste a short pairing code here once, and this plugin holds a token that works for this site’s folder and nothing else. Before each upload it asks Zinn Digital® for a one-time signed link, and the file goes straight from your web server to storage. If the token is ever exposed, you revoke it from your dashboard in one click.
What it does
- Uploads new media — the original and every thumbnail size WordPress generates — to your Zinn® storage.
- Rewrites image URLs, including
srcsetresponsive images, to your CDN address. - Moves your existing media library in the background, a few files at a time, picking up where it left off.
- Optionally removes the local copies once every size has uploaded successfully.
What it does not do
- It adds no REST endpoint, no shortcode, no script and no stylesheet.
- The one thing it does change on a public page is the address of an image or file that has
been offloaded:wp_get_attachment_urlandwp_calculate_image_srcsetare filtered so the
markup points at your bucket instead of this server. Nothing is added to the page, and while
Serve from Zinn® storage is off the addresses are left exactly as WordPress wrote them. - It never deletes anything from storage. Retention is decided in your dashboard.
- It does not delete local files after a partial upload — if any size fails, every local copy stays.
- It never asks for a storage key or a bucket name. Which bucket this site uses is decided in your Zinn Digital® dashboard. Whether addresses are rewritten and whether local copies are removed start as your dashboard’s choices when you pair, and you can change them afterwards on the plugin’s How media is served tab.
What it needs
- A Zinn Digital® account with object storage enabled for this site.
- Outbound HTTPS from your web server.
External services
This plugin moves your media library to Zinn® object storage and serves it from a CDN. It
requires a Zinn Digital® account and does nothing without one.
What is sent, and when
- Pairing (once, from your Zinn® dashboard). The plugin calls
https://api.zinndigital.com/v1/media-offload/claim to obtain its own scoped credential. No
access key is ever typed into WordPress or stored in your database in plain form. - Uploads (when you add media). Files you upload to the media library are transmitted to
Zinn® object storage via/v1/media-offload/uploads, and their public URLs are rewritten to the
CDN. This is the plugin’s purpose; the files are your own media. - Reporting.
/v1/media-offload/reportreturns offload status and storage usage for the
dashboard.
No post content, user accounts or visitor data are transmitted. Until the site is paired the
plugin makes no outbound requests.
Service terms: https://zinndigital.com/legal/terms
Privacy policy: https://zinndigital.com/legal/privacy
- Support diagnostics (only when you press send). If you ask us for help, the plugin can send
a support report tohttps://api.zinndigital.com/v1/connector/diagnostics. You are shown the
exact payload first, already redacted, and nothing leaves your site until you press send.
Credentials are excluded by declaration rather than by matching key names, and render as
[not sent — credential]. The plugin never sends this on its own initiative.
Translations
Every string this plugin adds to your admin is translated into 57 languages — labels, notices,
errors and settings, not a subset. The catalogues are bundled in the plugin, so they work as soon
as you set your site language; there is no separate language pack to install.
Every user-visible string is complete in every one of the 53 languages WordPress can serve
today:
Amharic (am), Arabic (ar), Azerbaijani (az), Bulgarian (bg_BG), Bengali (Bangladesh)
(bn_BD), Czech (cs_CZ), German (de_DE), Greek (el), Spanish (Spain) (es_ES), Persian
(fa_IR), French (France) (fr_FR), Gujarati (gu), Hebrew (he_IL), Hindi (hi_IN), Croatian
(hr), Hungarian (hu_HU), Armenian (hy), Indonesian (id_ID), Italian (it_IT), Japanese
(ja), Georgian (ka_GE), Kazakh (kk), Khmer (km), Kannada (kn), Korean (ko_KR), Lao (lo),
Malayalam (ml_IN), Mongolian (mn), Marathi (mr), Malay (ms_MY), Myanmar (Burmese)
(my_MM), Nepali (ne_NP), Dutch (nl_NL), Panjabi (India) (pa_IN), Polish (pl_PL), Pashto
(ps), Portuguese (Brazil) (pt_BR), Romanian (ro_RO), Russian (ru_RU), Sinhala (si_LK),
Albanian (sq), Serbian (sr_RS), Swahili (sw), Tamil (ta_IN), Telugu (te), Thai (th),
Tagalog (tl), Turkish (tr_TR), Ukrainian (uk), Urdu (ur), Uzbek (uz_UZ), Vietnamese
(vi), Chinese (China) (zh_CN)
A further 4 ship complete in the plugin — Hausa (ha), Somali (so_SO), Tajik (tg), Yoruba (yo) — but
WordPress core does not currently provide a locale for them, so WordPress cannot load them.
Right-to-left
Arabic, Persian, Hebrew, Pashto and Urdu are right-to-left. Every screen this plugin adds was
rendered in a real WordPress install in each of those languages and checked, not assumed.
For translators
languages/ holds the `.pot` template plus a `.po`, `.mo` and `.l10n.php` for every language, so
corrections and new languages can be contributed directly.
Скриншоты



Установка
- Install and activate the plugin.
- In your Zinn Digital® dashboard, open the site, choose Files & databases, turn on Images & video CDN, and press Get a pairing code.
- In WordPress go to Zinn Digital® Media Offload, paste the code on the Connection tab, and press Connect this site.
New uploads move immediately. Your existing library moves in the background over the following hours.
Часто задаваемые вопросы
-
What happens to my images if I deactivate the plugin?
-
Media that has already moved keeps working — its address does not change, because it is served from the CDN and the CDN is still there. New uploads stay on your web server.
-
What happens if Zinn Digital® is unreachable when I upload something?
-
The upload succeeds and the file stays on your server, exactly as it would without this plugin. The settings screen shows what went wrong, and the background pass picks the file up later.
-
Will it delete my local files?
-
Only if you switch that on in your Zinn Digital® dashboard, and only for an attachment where every size uploaded successfully. A partial upload never removes anything, because there would then be thumbnails in neither place and no original to regenerate them from.
-
Does it work with responsive images?
-
Yes. It rewrites
srcsetand sized-image requests as well as the plain attachment URL. A plugin that only rewrote the plain URL would serve your full-size images from the CDN and every responsive candidate from your server — which looks correct on a desktop and is wrong on a phone. -
Can I use my own bucket?
-
Yes. Attach your own S3-compatible bucket in your Zinn Digital® dashboard; the plugin works the same way and still never holds the key.
Отзывы
Нет отзывов об этом плагине.
Участники и разработчики
«Zinn® Media Offload» — проект с открытым исходным кодом. В развитие плагина внесли свой вклад следующие участники:
Участники«Zinn® Media Offload» переведён на 3 языка. Благодарим переводчиков за их работу.
Перевести «Zinn® Media Offload» на ваш язык.
Заинтересованы в разработке?
Посмотрите код, проверьте SVN репозиторий, или подпишитесь на журнал разработки по RSS.
Журнал изменений
1.2.10
- The Connection tab now names the dashboard screens as they really are: open your site, then Files & databases, then Get a pairing code under Images & video CDN. The installation steps say the same and name the plugin’s own screen, Zinn Digital® Media Offload, and the description no longer says the plugin has no settings of its own. The WordPress.org listing gains three screenshots.
1.2.9
- Readme: clearer description of how the plugin works.
1.2.8
- Translations: a word written in the wrong alphabet (for example a Korean word inside a Malayalam sentence, or an Urdu word ending a Punjabi one) is corrected in every language that had one. Each affected string was translated again and checked.
1.2.7
- Tested up to: 7.1 — the major version only, as WordPress.org’s Plugin Check requires (7.1.1 was refused as invalid_tested_upto_minor).
1.2.6
- Tested up to WordPress 7.1.1.
1.2.5
- In a right-to-left admin language, the Zinn Digital® menu entry showed its trademark symbol on the wrong side of the name. The name is now isolated so it reads correctly in Arabic, Hebrew, Persian, Pashto and Urdu.
- Number fields on the settings screen are now wide enough to show the whole value; a long value was cut off to its first few digits.
1.2.4
- The admin screens’ styles and scripts are now enqueued through WordPress rather than printed into the page, so they can be dequeued, deferred or optimised by your site like any other asset — and they still work on a site whose security policy forbids inline code.
1.2.3
- Translations: every string this plugin’s admin shows is now translated in every bundled language. A few strings the machine translator refused were shipping in English; they are now translated by hand.
- The file-type list on the settings screen now comes from WordPress’s own cached answer instead of a direct database query.
1.2.2
- Fixed (first shipped in 1.2.1): offloading a file no longer fails with a fatal error. The class that streams uploads was shipped and never loaded.
- Hardening: a settings rule can no longer be mistaken for a PHP function with the same name. The same shared settings code is what stopped Zinn® Translate saving its settings. Nothing about how this plugin behaves changes.
1.2.0
Everything about offloading is now yours to set: whether new uploads move, whether the existing library keeps moving and how fast, a minimum file size, file types to leave alone, and whether media is served from storage and the local copy deleted.
1.1.3
- Fixed: uploading a large media file could exhaust PHP’s memory. Files are now streamed to storage rather than read into memory first.
- Corrected the description: the plugin does rewrite media addresses on public pages when you switch rewriting on, which the readme previously denied.
1.1.2
1.1.0
- Added the Zinn® panel: links to Zinn Digital® hosting, the Zinn® marketplace, Zinn Hub® and this plugin’s user guide, from inside the WordPress admin.
1.0.0
- First release.
