Как скачать медиабиблиотеку WordPress: все методы с объяснением
Резервное копирование или миграция медиабиблиотеки WordPress означает получение всего содержимого wp-content/uploads — директории, в которую WordPress записывает каждое изображение, видео, PDF и аудиофайл, прикреплённый к вашему сайту. Это можно сделать через прямой доступ к файлам сервера (cPanel File Manager или FTP), специальный плагин WordPress или инструмент резервного копирования всего сайта — в зависимости от размера сайта, уровня доступа к серверу и срочности.
Это руководство охватывает все пять практических методов с полной технической глубиной, включая подводные камни, которые застают администраторов врасплох, соображения производительности для больших библиотек и точные шаги для каждого подхода.
Почему загрузка медиабиблиотеки важна
Папка uploads WordPress не включается в стандартный экспорт базы данных (wp_posts, wp_postmeta и т.д.). Это означает, что дамп MySQL никогда не является полной резервной копией. Медиафайлы полностью находятся вне базы данных — это бинарные ресурсы в файловой системе. Любой план миграции, переноса сервера или аварийного восстановления, который не включает wp-content/uploads, приведёт к битым ссылкам на изображения по всему сайту.
Распространённые сценарии, требующие полной загрузки медиабиблиотеки:
- Миграция сервера на нового хостинг-провайдера или в среду VPS Хостинга
- Локальная разработка — перенос производственных ресурсов на тестовый экземпляр
- Архивная резервная копия перед крупной переработкой темы или плагинов
- Юридическое или нормативное хранение опубликованных медиаматериалов
- Освобождение дискового пространства после перехода на Виртуальный веб-хостинг с более жёсткими ограничениями хранилища
Сравнение методов
| Метод | Лучше всего подходит для | Требует доступа к серверу | Справляется с большими библиотеками | Формат загрузки |
|---|---|---|---|---|
| cPanel File Manager | Быстрые разовые загрузки | Да (cPanel) | Умеренно (ограничение ZIP ~2 ГБ) | ZIP-архив |
| FTP / SFTP клиент | Большие или очень большие библиотеки | Да (FTP-учётные данные) | Отлично | Исходные файлы |
| Плагин Export Media Library | Нетехнические пользователи, нет доступа к серверу | Нет | Умеренно | ZIP-архив |
| Панель управления WordPress (вручную) | Отдельные файлы или небольшие группы | Нет | Плохо | Отдельные файлы |
| Плагин резервного копирования (UpdraftPlus и др.) | Полное резервное копирование сайта + медиа | Нет | Хорошо | Проприетарный или ZIP |
Метод 1: Загрузка через cPanel или файловый менеджер хостинга
Это самый быстрый способ, когда у вас есть доступ к cPanel, а медиабиблиотека занимает менее примерно 2 ГБ в несжатом виде. File Manager сжимает папку на стороне сервера и позволяет загрузить единый архив.
Пошаговая инструкция
- Войдите в cPanel и откройте File Manager.
- Перейдите в
public_html/wp-content/uploads(или эквивалентный путь, если WordPress установлен в поддиректории, напримерpublic_html/blog/wp-content/uploads). - Щёлкните правой кнопкой мыши на папке
uploadsи выберите Compress. - Выберите ZIP Archive в качестве формата и подтвердите путь назначения.
- Дождитесь завершения сжатия — для больших папок это может занять несколько минут.
- Щёлкните правой кнопкой мыши на полученном файле
.zipи выберите Download.
Критические подводные камни
- Таймаут выполнения PHP: File Manager в cPanel выполняет сжатие с помощью серверного PHP-процесса. Библиотеки размером более ~1,5–2 ГБ часто достигают лимита
max_execution_time, оставляя повреждённый или неполный архив. Если это происходит, переключитесь на Метод 2. - Двойной учёт дисковой квоты: Сжатие создаёт вторую копию данных на диске. Если вы близки к исчерпанию квоты, задание сжатия завершится без сообщения об ошибке. Удалите ZIP сразу после загрузки.
- Структура поддиректорий по году/месяцу: WordPress организует загрузки по дате (
uploads/2024/03/). ZIP сохранит эту иерархию, что правильно — не выравнивайте её перед повторным импортом.
Метод 2: Загрузка через FTP или SFTP клиент (FileZilla)
FTP/SFTP является профессиональным стандартом для массовой передачи файлов. Он полностью обходит таймауты PHP, поддерживает возобновляемые передачи и справляется с библиотеками любого размера. SFTP (порт 22) настоятельно предпочтительнее обычного FTP (порт 21), поскольку шифрует учётные данные и данные при передаче — это критически важно, если ваш сервер не применяет FTPS.
Подключение с помощью FileZilla
- Откройте FileZilla и перейдите в File > Site Manager > New Site.
- Установите протокол SFTP – SSH File Transfer Protocol.
- Введите имя хоста или IP-адрес сервера, порт
22и ваши SSH/SFTP учётные данные. Они доступны в панели управления хостингом в разделе FTP Accounts или SSH Access. - Нажмите Connect.
Загрузка папки uploads
После подключения:
- В панели Remote Site (правая сторона) перейдите в
/public_html/wp-content/uploads. - В панели Local Site (левая сторона) перейдите в целевую директорию на вашем локальном компьютере.
- Щёлкните правой кнопкой мыши на папке
uploadsв удалённой панели и выберите Download.
FileZilla поставит в очередь каждый файл и поддиректорию рекурсивно. Вы можете отслеживать прогресс передачи в нижней панели состояния. Если соединение прервётся, очередь FileZilla возобновляема — щёлкните правой кнопкой мыши на очереди и выберите Process Queue для продолжения.
Ускорение больших передач
FileZilla по умолчанию использует один поток передачи. Для больших библиотек увеличьте количество одновременных подключений:
- Перейдите в Edit > Settings > Transfers.
- Установите Maximum simultaneous transfers на
5или10(в зависимости от ограничений подключения вашего сервера).
Для командной строки или автоматизированных скриптов rsync через SSH работает быстрее и надёжнее, чем GUI FTP:
rsync -avz --progress user@yourserver.com:/var/www/html/wp-content/uploads/ ./local-uploads/Флаг -a сохраняет права доступа и временны́е метки, -v включает подробный вывод, а -z включает сжатие при передаче. Это предпочтительный метод для системных администраторов, управляющих несколькими установками WordPress на Выделенном сервере.
Метод 3: Плагин Export Media Library
Когда доступ на уровне сервера недоступен — например, на управляемом тарифе WordPress или в общей среде, где FTP-учётные данные ограничены — экспорт на основе плагина является наиболее чистым решением.
Использование плагина «Export Media Library»
- В панели управления WordPress перейдите в Plugins > Add New.
- Найдите Export Media Library (от команды Imagify / WP Rocket).
- Установите и активируйте его.
- Перейдите в Media > Export.
- Выберите формат экспорта. ZIP является стандартным выбором. Некоторые версии плагина также предлагают плоскую структуру (все файлы в одной директории) в отличие от иерархии папок по году/месяцу по умолчанию — сохраняйте структуру папок, если планируете повторный импорт.
- Нажмите Download и сохраните архив локально.
Известные ограничения
- Плагин генерирует ZIP в реальном времени с использованием PHP. На серверах с низким
memory_limit(например, 128 МБ) или короткимmax_execution_timeэкспорт завершится ошибкой для больших библиотек. - Некоторые хостинговые среды ограничивают генерацию ZIP несколькими сотнями мегабайт. Если загрузка завершается ошибкой или создаёт повреждённый файл, проверьте журнал ошибок PHP по адресу
wp-content/debug.log(сначала включитеWP_DEBUG_LOGвwp-config.php). - Плагин не экспортирует медиафайлы, которые были загружены, а затем удалены из медиабиблиотеки, но чьи файлы остались на диске. Используйте FTP для действительно исчерпывающей копии файловой системы.
Метод 4: Загрузка отдельных файлов из медиабиблиотеки WordPress
Этот метод практичен только для получения нескольких конкретных файлов. Он не масштабируется.
- Перейдите в Media > Library в панели управления WordPress.
- Переключитесь в List View для более удобной идентификации файлов.
- Нажмите на нужный медиаэлемент.
- В панели Attachment Details найдите поле File URL и скопируйте URL.
- Вставьте URL во вкладку браузера, затем щёлкните правой кнопкой мыши на файле и выберите Save As.
Для несколько больших групп файлов можно использовать инструменты разработчика браузера или расширение браузера для массового сохранения открытых вкладок, но это остаётся неэффективным для более чем 20–30 файлов.
Более масштабируемый вариант: используйте wget со списком URL, экспортированных из базы данных:
wget -i media-urls.txt -P ./downloaded-media/Где media-urls.txt содержит по одному URL вложения на строку. Вы можете сгенерировать этот список с помощью запроса WP-CLI:
wp post list --post_type=attachment --field=guid --allow-root > media-urls.txtМетод 5: Плагин полного резервного копирования сайта (UpdraftPlus / All-in-One WP Migration)
Плагины резервного копирования являются правильным выбором, когда вам нужна медиабиблиотека как часть полного снимка сайта — например, перед крупным обновлением, миграцией сервера или сменой хостинга.
UpdraftPlus
- Установите и активируйте UpdraftPlus из репозитория плагинов.
- Перейдите в Settings > UpdraftPlus Backups.
- Нажмите Backup Now. В диалоговом окне убедитесь, что установлен флажок Include your files in the backup (это охватывает
wp-content/uploads). - После завершения резервного копирования перейдите на вкладку Existing Backups.
- Нажмите кнопку компонента Uploads, чтобы загрузить только архив медиафайлов, или загрузите все компоненты по отдельности.
UpdraftPlus разбивает большие резервные копии на несколько ZIP-сегментов (по умолчанию: по 400 МБ каждый), чтобы избежать проблем с памятью PHP. Вам потребуется собрать эти сегменты вместе, если вы извлекаете их вручную.
All-in-One WP Migration
- Установите и активируйте All-in-One WP Migration.
- Перейдите в All-in-One WP Migration > Export.
- Выберите File в качестве места назначения экспорта.
- Плагин упакует базу данных, темы, плагины и загрузки в единый файл
.wpress. - Загрузите файл
.wpress. Чтобы извлечь медиафайлы из него без повторного импорта в WordPress, переименуйте расширение в.zip— внутренняя структура совместима со стандартным ZIP и содержит папкуuploads.
Когда плагины резервного копирования не подходят
Плагины резервного копирования оптимизированы для полного восстановления сайта, а не для точечного извлечения медиафайлов. Если вам нужна только папка uploads, накладные расходы на упаковку базы данных и всех плагинов излишни. Используйте FTP или cPanel для загрузки только медиафайлов.
Работа с очень большими медиабиблиотеками (10 ГБ+)
Библиотеки размером более 10 ГБ требуют иного подхода, чтобы избежать таймаутов, исчерпания памяти и неполных передач.
Разбейте загрузку по годам: WordPress организует загрузки в поддиректории uploads/YYYY/MM/. Загружайте папку одного года за раз через FTP, чтобы сеансы передачи оставались управляемыми.
Используйте tar со сжатием на сервере сначала, затем загрузите:
tar -czf /tmp/uploads-backup.tar.gz /var/www/html/wp-content/uploads/Затем загрузите единый файл .tar.gz через SFTP или SCP:
scp user@yourserver.com:/tmp/uploads-backup.tar.gz ./WP-CLI для выборочного экспорта: Если вам нужны только медиафайлы, прикреплённые к опубликованным записям (исключая потерянные вложения), WP-CLI позволяет выполнять выборочные запросы и копирование:
wp post list --post_type=attachment --post_status=inherit --field=guid --allow-root |
sed 's|https://yourdomain.com||' |
xargs -I {} cp /var/www/html{} ./selective-exports/Соображения безопасности при загрузке
- Всегда используйте SFTP или SCP вместо обычного FTP. Незашифрованный FTP передаёт ваши учётные данные в открытом виде, что делает их уязвимыми в общих сетевых сегментах.
- Если ваш сайт использует SSL-сертификат (HTTPS), убедитесь, что ваши медиа-URL обслуживаются через HTTPS, чтобы избежать предупреждений о смешанном контенте при повторном импорте на новый домен.
- После загрузки немедленно удалите все ZIP-архивы с сервера. Общедоступный
uploads-backup.zipвpublic_htmlпредставляет серьёзный риск утечки данных. - Проверьте целостность архива после загрузки с помощью контрольных сумм MD5 или SHA256 перед удалением источника:
md5sum uploads-backup.tar.gzВыполните ту же команду на сервере перед загрузкой и сравните результаты.
Восстановление загруженной медиабиблиотеки
Загрузка — это только половина процесса. При восстановлении на новую установку WordPress:
- Загрузите содержимое папки
uploadsвwp-content/uploads/на новом сервере, сохраняя структуру директорий по году/месяцу. - Если доменное имя изменилось, выполните поиск и замену в базе данных для обновления всех жёстко закодированных медиа-URL:
wp search-replace 'https://old-domain.com' 'https://new-domain.com' --all-tables --allow-root- Регенерируйте миниатюры изображений после переноса, поскольку WordPress хранит несколько изменённых версий каждого изображения, и они должны соответствовать зарегистрированным размерам изображений новой темы:
wp media regenerate --allow-rootЕсли вы выполняете миграцию на новый VPS с cPanel, File Manager на целевом сервере может обработать повторную загрузку напрямую, избавляя от необходимости во втором FTP-сеансе.
Матрица технических решений
Используйте эту матрицу для выбора правильного метода на основе ваших конкретных ограничений:
| Ограничение | Рекомендуемый метод |
|---|---|
| Библиотека менее 2 ГБ, доступен cPanel | cPanel File Manager (сжатие в ZIP + загрузка) |
| Библиотека более 2 ГБ, доступен SSH | rsync или tar + scp через командную строку |
| Библиотека более 2 ГБ, только FTP | FileZilla с несколькими одновременными подключениями |
| Нет доступа к серверу, нетехнический пользователь | Плагин Export Media Library |
| Нужен полный снимок сайта для миграции | UpdraftPlus или All-in-One WP Migration |
| Нужно только несколько конкретных файлов | Копирование URL через панель управления WordPress или wget |
| Автоматическое/плановое резервное копирование медиа | Задание rsync cron на сервере |
Практический чеклист перед началом
- Убедитесь, что доступное локальное дисковое пространство составляет не менее 1,5x размера папки
uploads(накладные расходы на сжатие) - Проверьте, что ваши FTP/SFTP учётные данные активны и не ограничены белым списком IP-адресов
- Включите
WP_DEBUG_LOGвwp-config.phpперед использованием плагинных экспортов для перехвата ошибок PHP - Запишите точный путь к корню WordPress — он не всегда равен
public_html(установки в поддиректории распространены) - После загрузки проверьте количество файлов: сравните
find /path/to/uploads -type f | wc -lна сервере с извлечённым архивом - Немедленно удалите серверные ZIP или TAR архивы после успешной загрузки
Часто задаваемые вопросы
Включает ли загрузка медиабиблиотеки также экспорт записей вложений из базы данных?
Нет. Папка wp-content/uploads содержит только бинарные файлы. Метаданные вложений — заголовки, альтернативный текст, подписи и связи с записями — хранятся в таблицах базы данных wp_posts и wp_postmeta. Полная миграция требует как загрузки файловой системы, так и экспорта базы данных.
Почему моя ZIP-загрузка через cPanel создаёт повреждённый или неполный архив?
Это почти всегда указывает на таймаут PHP max_execution_time во время серверного сжатия. Решение — либо увеличить таймаут в php.ini (max_execution_time = 300), сжимать папку меньшими частями по годам, либо переключиться на FTP/SFTP для передачи.
Можно ли загрузить только изображения, исключив видео, чтобы сэкономить трафик?
Да. Использование rsync с флагами --include и --exclude даёт точный контроль:
rsync -avz --include="*.jpg" --include="*.png" --include="*.webp"
--exclude="*" user@yourserver.com:/var/www/html/wp-content/uploads/ ./images-only/Повредит ли загрузка папки uploads работающему сайту?
Нет. Загрузка является операцией только для чтения. FTP, SFTP и cPanel File Manager не изменяют файлы сервера во время загрузки. Единственный риск — потребление дискового пространства, если вы сжимаете папку на стороне сервера и забываете удалить архив после этого.
Как узнать точный размер папки uploads перед загрузкой?
Выполните следующую команду через SSH для получения читаемого итога:
du -sh /var/www/html/wp-content/uploads/В cPanel щёлкните правой кнопкой мыши на папке uploads в File Manager и выберите Calculate Size для того же результата без доступа по SSH.
