15%

Сэкономьте 15% на всех хостинговых услугах

Проверьте свои навыки и получите скидку на любой тарифный план

Используйте код:

Skills
Начать
23.10.2024

Как скачать медиабиблиотеку 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 сжимает папку на стороне сервера и позволяет загрузить единый архив.

Пошаговая инструкция

  1. Войдите в cPanel и откройте File Manager.
  2. Перейдите в public_html/wp-content/uploads (или эквивалентный путь, если WordPress установлен в поддиректории, например public_html/blog/wp-content/uploads).
  3. Щёлкните правой кнопкой мыши на папке uploads и выберите Compress.
  4. Выберите ZIP Archive в качестве формата и подтвердите путь назначения.
  5. Дождитесь завершения сжатия — для больших папок это может занять несколько минут.
  6. Щёлкните правой кнопкой мыши на полученном файле .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

  1. Откройте FileZilla и перейдите в File > Site Manager > New Site.
  2. Установите протокол SFTP – SSH File Transfer Protocol.
  3. Введите имя хоста или IP-адрес сервера, порт 22 и ваши SSH/SFTP учётные данные. Они доступны в панели управления хостингом в разделе FTP Accounts или SSH Access.
  4. Нажмите Connect.

Загрузка папки uploads

После подключения:

  1. В панели Remote Site (правая сторона) перейдите в /public_html/wp-content/uploads.
  2. В панели Local Site (левая сторона) перейдите в целевую директорию на вашем локальном компьютере.
  3. Щёлкните правой кнопкой мыши на папке 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»

  1. В панели управления WordPress перейдите в Plugins > Add New.
  2. Найдите Export Media Library (от команды Imagify / WP Rocket).
  3. Установите и активируйте его.
  4. Перейдите в Media > Export.
  5. Выберите формат экспорта. ZIP является стандартным выбором. Некоторые версии плагина также предлагают плоскую структуру (все файлы в одной директории) в отличие от иерархии папок по году/месяцу по умолчанию — сохраняйте структуру папок, если планируете повторный импорт.
  6. Нажмите Download и сохраните архив локально.

Известные ограничения

  • Плагин генерирует ZIP в реальном времени с использованием PHP. На серверах с низким memory_limit (например, 128 МБ) или коротким max_execution_time экспорт завершится ошибкой для больших библиотек.
  • Некоторые хостинговые среды ограничивают генерацию ZIP несколькими сотнями мегабайт. Если загрузка завершается ошибкой или создаёт повреждённый файл, проверьте журнал ошибок PHP по адресу wp-content/debug.log (сначала включите WP_DEBUG_LOG в wp-config.php).
  • Плагин не экспортирует медиафайлы, которые были загружены, а затем удалены из медиабиблиотеки, но чьи файлы остались на диске. Используйте FTP для действительно исчерпывающей копии файловой системы.

Метод 4: Загрузка отдельных файлов из медиабиблиотеки WordPress

Этот метод практичен только для получения нескольких конкретных файлов. Он не масштабируется.

  1. Перейдите в Media > Library в панели управления WordPress.
  2. Переключитесь в List View для более удобной идентификации файлов.
  3. Нажмите на нужный медиаэлемент.
  4. В панели Attachment Details найдите поле File URL и скопируйте URL.
  5. Вставьте 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

  1. Установите и активируйте UpdraftPlus из репозитория плагинов.
  2. Перейдите в Settings > UpdraftPlus Backups.
  3. Нажмите Backup Now. В диалоговом окне убедитесь, что установлен флажок Include your files in the backup (это охватывает wp-content/uploads).
  4. После завершения резервного копирования перейдите на вкладку Existing Backups.
  5. Нажмите кнопку компонента Uploads, чтобы загрузить только архив медиафайлов, или загрузите все компоненты по отдельности.

UpdraftPlus разбивает большие резервные копии на несколько ZIP-сегментов (по умолчанию: по 400 МБ каждый), чтобы избежать проблем с памятью PHP. Вам потребуется собрать эти сегменты вместе, если вы извлекаете их вручную.

All-in-One WP Migration

  1. Установите и активируйте All-in-One WP Migration.
  2. Перейдите в All-in-One WP Migration > Export.
  3. Выберите File в качестве места назначения экспорта.
  4. Плагин упакует базу данных, темы, плагины и загрузки в единый файл .wpress.
  5. Загрузите файл .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:

  1. Загрузите содержимое папки uploads в wp-content/uploads/ на новом сервере, сохраняя структуру директорий по году/месяцу.
  2. Если доменное имя изменилось, выполните поиск и замену в базе данных для обновления всех жёстко закодированных медиа-URL:
wp search-replace 'https://old-domain.com' 'https://new-domain.com' --all-tables --allow-root
  1. Регенерируйте миниатюры изображений после переноса, поскольку WordPress хранит несколько изменённых версий каждого изображения, и они должны соответствовать зарегистрированным размерам изображений новой темы:
wp media regenerate --allow-root

Если вы выполняете миграцию на новый VPS с cPanel, File Manager на целевом сервере может обработать повторную загрузку напрямую, избавляя от необходимости во втором FTP-сеансе.

Матрица технических решений

Используйте эту матрицу для выбора правильного метода на основе ваших конкретных ограничений:

ОграничениеРекомендуемый метод
Библиотека менее 2 ГБ, доступен cPanelcPanel File Manager (сжатие в ZIP + загрузка)
Библиотека более 2 ГБ, доступен SSHrsync или tar + scp через командную строку
Библиотека более 2 ГБ, только FTPFileZilla с несколькими одновременными подключениями
Нет доступа к серверу, нетехнический пользовательПлагин 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.

15%

Сэкономьте 15% на всех хостинговых услугах

Проверьте свои навыки и получите скидку на любой тарифный план

Используйте код:

Skills
Начать