Описание
Advanced Media Offloader помогает оптимизировать работу с медиа в WordPress, автоматически загружая ваши медиа-файлы в облачные хранилища, совместимые с S3.
Столкнулись с ограничениями серверного пространства? Хотите повысить производительность сайта, обслуживая медиа через CDN? Этот плагин берет на себя техническую работу по миграции медиа в облако, переписыванию URL и обеспечению совместимости с вашим существующим контентом.
Ключевые преимущества
- Сократите требования к серверному хранилищу и расходы
- Снижайте нагрузку на сервер при обслуживании медиа-файлов
- Улучшите скорость загрузки сайта по всему миру при использовании вместе с CDN-сервисами
- Сохраняйте полную совместимость с функциями работы с медиа WordPress
- Нет необходимости изменять существующий контент — URL переписываются автоматически
Поддерживаемые облачные провайдеры
- Amazon S3 — стандартное в отрасли объектное хранилище
- Cloudflare R2 — совместимое с S3 хранилище с нулевыми расходами на исходящий трафик
- DigitalOcean Spaces — простое объектное хранилище от DigitalOcean
- Backblaze B2 — Affordable S3-compatible storage with predictable pricing
- Wasabi — горячее облачное хранилище с предсказуемой ценой
- MinIO — Any S3-compatible storage (MinIO, OVHcloud Object Storage, Scaleway, Linode, Vultr, IBM COS, and more)
Функции
- Автоматическая выгрузка — новые медиа-загрузки автоматически отправляются в ваше облачное хранилище
- Умные политики — создавайте продвинутые правила, чтобы точно контролировать, какие файлы и когда выгружаются, обеспечивая детальное управление вашим хранилищем. (Узнать больше)
- Массовая миграция и WP CLI — легко перемещайте существующие медиа-файлы в облако с помощью мощной поддержки командной строки для массовых операций и автоматизации (Узнать больше)
- Thumbnail Regeneration Compatibility — Compatible with WP-CLI
wp media regeneratecommand and the Regenerate Thumbnails plugin. Regenerated thumbnails automatically offload to cloud storage. Note: Not compatible with Full Cloud Migration retention policy. - Умное переписывание URL — все URL медиа автоматически переписываются для обслуживания из облачного хранилища
- Версионирование файлов — добавление уникальных временных меток к путям медиа, чтобы избежать проблем с кэшированием
- Гибкое хранение — возможность сохранять локальные копии или удалять их после успешной выгрузки
- Зеркальное удаление — возможность удалять файлы из облачного хранилища при их удалении из WordPress
- Пользовательские пути — настройка пользовательских префиксов путей в вашем облачном хранилище
- Developer-Friendly — Extensive action and filter hooks for extending functionality (View Documentation)
Developer Documentation
For developers looking to extend or customize the plugin behavior, we provide comprehensive documentation for all available hooks:
View Developer Hooks Documentation
Quick example — skip offloading files larger than 5MB:
add_filter('advmo_should_offload_attachment', function($should_offload, $attachment_id) {
$file = get_attached_file($attachment_id);
if ($file && filesize($file) > 5 * 1024 * 1024) {
return false;
}
return $should_offload;
}, 10, 2);
Конфигурация
Для безопасности данные вашего облачного провайдера хранятся в файле wp-config.php, а не в базе данных.
Note: Domain and endpoint URLs will automatically be prefixed with https:// if you don’t include it, but we recommend always including the full URL for clarity.
define('ADVMO_CLOUDFLARE_R2_KEY', 'your-access-key');
define('ADVMO_CLOUDFLARE_R2_SECRET', 'your-secret-key');
define('ADVMO_CLOUDFLARE_R2_BUCKET', 'your-bucket-name');
define('ADVMO_CLOUDFLARE_R2_DOMAIN', 'your-domain-url');
define('ADVMO_CLOUDFLARE_R2_ENDPOINT', 'your-endpoint-url');
define('ADVMO_DOS_KEY', 'your-access-key');
define('ADVMO_DOS_SECRET', 'your-secret-key');
define('ADVMO_DOS_BUCKET', 'your-bucket-name');
define('ADVMO_DOS_DOMAIN', 'your-domain-url');
define('ADVMO_DOS_ENDPOINT', 'your-endpoint-url');
Use this for any storage that supports the S3 API via a custom endpoint (e.g., MinIO, OVHcloud Object Storage, Scaleway, Linode, Vultr, IBM COS). Select this if your provider isn’t listed separately.
define('ADVMO_MINIO_KEY', 'your-access-key');
define('ADVMO_MINIO_SECRET', 'your-secret-key');
define('ADVMO_MINIO_BUCKET', 'your-bucket-name');
define('ADVMO_MINIO_DOMAIN', 'your-domain-url');
define('ADVMO_MINIO_ENDPOINT', 'your-endpoint-url');
define('ADVMO_MINIO_PATH_STYLE_ENDPOINT', false); // Optional. Set to true if your MinIO server requires path-style URLs (most self-hosted MinIO setups). Default is false.
define('ADVMO_MINIO_REGION', 'your-bucket-region'); // Optional. Set your MinIO bucket region if needed. Default is 'us-east-1'.
define('ADVMO_AWS_KEY', 'your-access-key');
define('ADVMO_AWS_SECRET', 'your-secret-key');
define('ADVMO_AWS_BUCKET', 'your-bucket-name');
define('ADVMO_AWS_REGION', 'your-bucket-region');
define('ADVMO_AWS_DOMAIN', 'your-domain-url');
Backblaze B2 Configuration
define('ADVMO_BACKBLAZE_B2_KEY', 'your-application-key-id');
define('ADVMO_BACKBLAZE_B2_SECRET', 'your-application-key');
define('ADVMO_BACKBLAZE_B2_BUCKET', 'your-bucket-name');
define('ADVMO_BACKBLAZE_B2_REGION', 'your-bucket-region');
define('ADVMO_BACKBLAZE_B2_DOMAIN', 'your-domain-url');
define('ADVMO_BACKBLAZE_B2_ENDPOINT', 'your-endpoint-url');
define('ADVMO_WASABI_KEY', 'your-access-key');
define('ADVMO_WASABI_SECRET', 'your-secret-key');
define('ADVMO_WASABI_BUCKET', 'your-bucket-name');
define('ADVMO_WASABI_REGION', 'your-bucket-region');
define('ADVMO_WASABI_DOMAIN', 'your-domain-url');
Использование S3 PHP SDK
Advanced Media Offloader использует AWS SDK для PHP для взаимодействия с облачными хранилищами, совместимыми с S3. Этот мощный SDK предоставляет удобный API для управления операциями с облачным хранилищем, включая загрузку и скачивание файлов и многое другое. SDK поддерживается Amazon Web Services, что гарантирует высокую совместимость и производительность с сервисами S3.
Для получения дополнительной информации о AWS SDK для PHP посетите сайт:
https://aws.amazon.com/sdk-for-php/.
Скриншоты
Установка
- Загрузите файлы плагина в
/wp-content/plugins/advanced-media-offloader/или установите напрямую через WordPress - Активируйте плагин через меню «Плагины» в WordPress
- Перейдите в «Media Offloader» в меню администратора, чтобы настроить параметры
- Добавьте данные вашего облачного провайдера в
wp-config.php(см. примеры конфигурации ниже) - Проверьте соединение и начните выгрузку медиа-файлов
Часто задаваемые вопросы
-
Поддерживает ли этот плагин другие облачные платформы хранения?
-
Currently supports Amazon S3, Backblaze B2, Cloudflare R2, DigitalOcean Spaces, MinIO & Wasabi. Additional providers are on the roadmap based on user demand.
-
Что происходит с медиа-файлами, уже загруженными на мой сервер?
-
Существующие файлы остаются без изменений, пока вы явно не воспользуетесь функцией массовой выгрузки. Новые загрузки обрабатываются автоматически в соответствии с вашими настройками.
-
Как именно работает переписывание URL?
-
Плагин подключается к основным функциям работы с медиа WordPress с помощью
wp_get_attachment_urlи связанных фильтров. Это обеспечивает совместимость с темами, плагинами и стандартными функциями ядра без изменения URL в базе данных. -
Могу ли я при необходимости откатить изменения?
-
Файлы, выгруженные с опцией «Сохранить локальные файлы», могут обслуживаться локально при деактивации плагина. Для полной миграции в облако потребуется повторно скачать медиа-файлы, если вы захотите вернуть их обратно.
-
Как обрабатываются размеры изображений и миниатюры?
-
Все сгенерированные размеры изображений выгружаются вместе с оригиналом. Переписывание URL работает для всех размеров и атрибутов srcset.
-
Будет ли это работать с конструкторами страниц и плагинами с большим количеством медиа?
-
Да, так как плагин использует стандартные хуки ядра WordPress для переписывания URL, он совместим с Elementor, Beaver Builder, WooCommerce и большинством других плагинов, использующих стандартные функции работы с медиа WordPress.
-
Поддерживает ли он приватные файлы с управлением доступом?
-
Бесплатная версия поддерживает только общедоступные файлы. Приватные файлы с аутентификацией могут быть добавлены в будущей премиум-версии.
-
Что произойдет, если я удалю медиа-файл из библиотеки WordPress?
-
При включенной опции «Mirror Delete» соответствующие файлы в облаке удаляются автоматически. В противном случае файлы остаются в облачном хранилище, что может привести к появлению «сиротских» объектов.
-
Как можно отлаживать проблемы с выгрузкой файлов?
-
Плагин записывает ошибки в метаданные вложений. Проверьте страницу «Обзор медиа» для подробного отчета об ошибках или включите ведение журнала отладки WordPress для получения дополнительной информации.
-
Какая рекомендуемая конфигурация корзины?
-
Для оптимальной производительности:
1. Включите конфигурацию CORS
2. Установите соответствующие публичные права на чтение
3. Настройте правильный регион (ближайший к вашей аудитории)
4. Рассмотрите использование CDN для глобального распространения -
How do I configure public access for my bucket?
-
By default, the plugin sets
public-readACL on uploaded objects. However, some providers don’t support ACLs, and AWS S3 has ACLs disabled by default on new buckets since April 2023. You should configure bucket-level public access using your provider’s bucket policies.If you encounter
AccessControlListNotSupportederrors or need to disable ACLs, add the following code to your theme’sfunctions.phpor a custom plugin:add_filter('advmo_object_acl', '__return_false');
Отзывы
Участники и разработчики
«Advanced Media Offloader» — проект с открытым исходным кодом. В развитие плагина внесли свой вклад следующие участники:
Участники«Advanced Media Offloader» переведён на 5 языков. Благодарим переводчиков за их работу.
Перевести «Advanced Media Offloader» на ваш язык.
Заинтересованы в разработке?
Посмотрите код, проверьте SVN репозиторий, или подпишитесь на журнал разработки по RSS.
Журнал изменений
4.3.1
- Added:
advmo_object_aclfilter to customize or disable object-level ACL permissions
4.3.0
- Added: New visual badges in Media Library show offload status at a glance. Cloud icon for offloaded files, warning icon for failed uploads.
- Added: Visual «Deleting…» loading indicator with spinner in Media Library attachment modal when deleting offloaded media
- Added: Offload status filter dropdown in Media Library for quick filtering by offload state.
- Improved: Optimized cloud deletion performance using batched deleteObjects API (up to 1000 keys per request) for faster deletion of attachments with multiple sizes
- Fixed: MinIO “Use Path-Style Endpoint” now correctly respects boolean
wp-config.phpconstants (e.g.define('ADVMO_MINIO_PATH_STYLE_ENDPOINT', true);).
4.2.3
- Fixed: TypeError when uploading non-image files (SVG, ZIP, PDF)
4.2.2
- Added: Compatibility with WordPress 6.9
- Added: Full Compatibility with Modern Image Formats
- Fixed: Minor changes and improvements
4.2.1
- Fix: Checkbox states for credential fields now properly persist when unchecked
- Fix: Deletion failure when WordPress year/month folders are disabled
4.2.0
- New: Added compatibility for thumbnail regeneration with WP-CLI
wp media regeneratecommand and the Regenerate Thumbnails plugin. Regenerated thumbnails now automatically offload to cloud storage. Note: This feature does not work with Full Cloud Migration retention policy. - New: Added the ability to configure cloud provider credentials through the WordPress admin settings page while maintaining backward compatibility with wp-config.php constants. Constants take priority and disable corresponding fields when defined.
- New: Added setting to toggle automatic cloud offloading for new uploads
- New: Added customizable Name field S3-compatible providers to identify specific storage services (e.g., MinIO, OVHcloud, Scaleway). Default is «MinIO» with backward compatibility for existing installations.
- Fix: Minor changes and improvements
4.1.1
- New: Added Backblaze B2 support — affordable S3-compatible cloud storage with predictable pricing
- Improved: Automatic URL normalization — Domain and endpoint URLs are now automatically prefixed with
https://if missing, eliminating common configuration errors
4.1.0
- Новое: добавлен фильтр
advmo_cloud_providers, позволяющий добавлять, удалять или настраивать список доступных облачных провайдеров - Новое: добавлена защита уникальных имен файлов — UniqueFilenameObserver автоматически предотвращает перезапись файлов при включенной полной миграции в облако
- Новое: добавлены фильтры доменов для разработчиков, позволяющие программно изменять CDN/пользовательские домены для каждого провайдера (
advmo_aws_domain,advmo_cloudflare_r2_domain,advmo_dos_domain,advmo_minio_domain,advmo_wasabi_domain) - Новое: добавлен фильтр
advmo_should_upload_original_imageдля управления загрузкой оригинальных изображений в облако (по умолчанию: true) - Исправление: оригинальные изображения теперь корректно загружаются в облачное хранилище и удаляются из него вместе с масштабированными версиями
- Исправление: для фоновых процессов, которые могли зависать, теперь предусмотрены корректные механизмы восстановления
- Исправление: отключена опция
use_aws_shared_config_filesдля всех провайдеров, совместимых с S3, чтобы предотвратить возможные конфликты и проблемы с безопасностью
4.0.3
- Исправлено: устранено переполнение памяти и фатальные ошибки при работе с выгруженными SVG-файлами.
4.0.2
- Улучшена поддержка SVG и исправлены проблемы с иконками SVG в Elementor после выгрузки.
4.0.1
- feat: добавлено фильтр advmo_should_offload_attachment для условного пропуска разгрузки
4.0.0
- Добавлено: команда WP CLI
wp advmo offloadдля массовых операций и автоматизации (Узнать больше) - Добавлено: отдельная кнопка «Выгрузить сейчас» на экране редактирования вложения для выгрузки по требованию
- Добавлено: функция повторной попытки для неудачных выгрузок с отдельной кнопкой «Повторить выгрузку»
- Исправлено: уведомления администратора от других плагинов теперь корректно отключаются на странице обзора медиа
- Улучшено: повышена согласованность интерфейса администратора на всех страницах плагина
3.3.5
- Исправлено: незначительные улучшения и исправления ошибок
3.3.4
- Исправлено: незначительные улучшения и исправления ошибок
- Обновлено: улучшена совместимость с WordPress
3.3.3
- Исправлено: используется каталог исходного файла для удаления изображений разных размеров, что решает проблему, при которой миниатюры старых загрузок не удалялись корректно
- Исправлено: устранена ошибка в функции зеркального удаления, обеспечивающая корректное удаление файлов из облака при удалении локальных файлов
- Добавлено: уведомления о необходимости использования протокола HTTPS для доменных имен и URL конечных точек с целью повышения безопасности
- Рефакторинг: стандартизирован подход к настройкам плагина для улучшения поддержки и читаемости кода
- Оптимизировано: улучшена массовая обработка с помощью прямых SQL-запросов для повышения производительности
- Исправлено: добавлена корректная проверка nonce и прав доступа для всех конечных точек AJAX с целью повышения безопасности
- Исправлено: сохранение значений флажков во время очистки настроек, чтобы предотвратить их случайный сброс
3.3.2
- Улучшена доступность и согласованность интерфейса администратора
- Добавлен стиль RTL и условная загрузка для улучшенной поддержки локализации
- Исправлены незначительные ошибки и внесены улучшения.
3.3.1
- Исправлены незначительные ошибки и внесены улучшения.
3.3.0
- Добавлен контейнер сервисов и архитектура с внедрением зависимостей
- Улучшено тестирование соединения с более качественной обработкой ошибок
- Исправлен процесс массовой выгрузки, чтобы предотвратить зависание операций
- Улучшен интерфейс с более понятным выбором облачного провайдера
- Улучшена документация с подробными инструкциями по настройке провайдеров
3.2.0
- Добавлена поддержка облачного хранилища Wasabi
- Повышена производительность и стабильность плагина
- Исправление мелких ошибок
3.1.0
- Исправлена и оптимизирована работа кнопки тестирования соединения
- Исправлены незначительные ошибки и внесены улучшения.
3.0.0
- Введён новый пользовательский интерфейс (UI) и улучшен пользовательский опыт (UX) на странице настроек.
- Добавлена возможность выгружать и синхронизировать отредактированные изображения с облачным хранилищем.
- Улучшена массовая выгрузка в облачное хранилище за счет исправления различных ошибок.
- Реализовано ведение журнала ошибок для операций массовой выгрузки.
- Добавлена возможность скачивания CSV-файла с подробными журналами для вложений, при выгрузке которых произошли ошибки.
- Повышена общая безопасность плагина.
- Исправлены различные проблемы, связанные с функционалом массовой выгрузки на JavaScript.
- Улучшена обработка ошибок и уведомления для медиа-вложений в библиотеке.
- Рефакторинг методов удаления вложений для повышения производительности и надежности.
2.1.0
- Реализован php-scoper для изоляции пространств имён AWS PHP SDK, что предотвращает конфликты с другими плагинами, использующими разные версии тех же пакетов.
- Исправлены незначительные ошибки и внесены улучшения.
2.0.3
- Исправлены незначительные ошибки и внесены улучшения.
2.0.2
- Отображение выгруженной версии изображений в содержимом поста после их выгрузки для ускорения загрузки и уменьшения расхода трафика.
- Исправлено: атрибут srcset не отображался для изображений при включенном версионировании объектов.
2.0.1
- Исправлены незначительные ошибки и внесены улучшения.
2.0.0
- Рефакторинг кодовой базы Advanced Media Offloader.
- Добавлены новые хуки действий для выполнения пользовательских операций до и после критических процессов.
- Исправлена проблема совместимости с плагином Performance Lab для WordPress.
- Исправлена ошибка при массовой выгрузке медиа-файлов.
- Добавлена поддержка конфигурации конечной точки в стиле пути MinIO с использованием константы ADVMO_MINIO_PATH_STYLE_ENDPOINT.
- Исправлены незначительные ошибки и внесены улучшения.
1.6.0
- Рефакторинг кода для улучшения поддерживаемости и читаемости, что привело к повышению производительности плагина.
- Исправлена проблема, из-за которой процесс массовой выгрузки становился неотзывчивым.
- Добавлена кнопка для отмены процесса массовой выгрузки, предоставляющая пользователям больший контроль при передаче файлов.
1.5.2
- Исправлена небольшая ошибка, связанная с путем существующих медиа-файлов при удалении локальных файлов.
1.5.1
- Исправлены незначительные ошибки для улучшения процесса массовой выгрузки
1.5.0
- Добавлена поддержка облачного хранилища Amazon S3
- Повышена производительность и стабильность плагина
- Исправление мелких ошибок
1.4.5
- Исправлены незначительные ошибки с MinIO
1.4.4
- Новая функция: пользовательский префикс пути для облачного хранилища
- Исправление мелких ошибок
1.4.3
- Добавление версии в путь корзины: автоматическое добавление уникальных временных меток к путям медиа-файлов, чтобы всегда предоставлялись актуальные версии
- Добавлена функция «Зеркальное удаление»: автоматическое удаление локальных файлов после успешной загрузки в облачное хранилище.
- Улучшение интерфейса настроек: улучшен пользовательский интерфейс страницы настроек.
1.4.2
- Добавлена функция «Синхронизация локальных и облачных удалений» для автоматического удаления медиа из облачного хранилища при их удалении локально.
- Повышена совместимость с WooCommerce: добавлена поддержка специфических размеров изображений WooCommerce и оптимизирована обработка изображений товаров.
1.4.1
- Исправлены незначительные ошибки, связанные с массовой выгрузкой существующих медиа-файлов
1.4.0
- Добавлена функция массовой выгрузки медиа-файлов (50 файлов за раз в бесплатной версии)
- Исправлена проблема с путями подкаталогов для файлов, не являющихся изображениями
- Улучшения интерфейса пользователя
- Исправлены незначительные ошибки
1.3.0
- Улучшения интерфейса пользователя
- Исправлены незначительные ошибки
1.2.0
- Добавлен MinIO в качестве нового облачного провайдера хранения данных
- Введена опция выбора удаления локальных файлов после выгрузки в облачное хранилище
- Реализованы улучшения интерфейса для страницы настроек плагина
- Добавлен статус выгрузки в раздел сведений о вложении в библиотеке медиа
- Исправлены незначительные ошибки
1.1.0
- Улучшена кодовая база для исправления некоторых проблем
- Добавлена поддержка DigitalOcean Spaces
1.0.0
- Первый выпуск.




