Як завантажити медіабібліотеку WordPress: пояснення кожного методу
Резервне копіювання або міграція медіабібліотеки WordPress означає отримання всього вмісту, збереженого в wp-content/uploads — директорії, куди WordPress записує кожне зображення, відео, PDF та аудіофайл, прикріплений до вашого сайту. Це можна зробити через прямий доступ до файлів сервера (cPanel File Manager або FTP), спеціалізований плагін WordPress або інструмент повного резервного копіювання сайту — залежно від розміру сайту, рівня доступу до сервера та терміновості.
Цей посібник охоплює всі п’ять практичних методів у повній технічній деталізації, включаючи підводні камені, які застають адміністраторів зненацька, міркування щодо продуктивності для великих бібліотек та точні кроки для кожного підходу.
Чому завантаження медіабібліотеки має значення
Папка WordPress uploads не включається до стандартного експорту бази даних (wp_posts, wp_postmeta тощо). Це означає, що дамп MySQL сам по собі ніколи не є повним резервним копіюванням. Медіафайли повністю знаходяться поза базою даних — це бінарні ресурси у файловій системі. Будь-який план міграції, переміщення сервера або аварійного відновлення, який не включає wp-content/uploads, призведе до зламаних посилань на зображення по всьому сайту.
Поширені сценарії, що вимагають повного завантаження медіабібліотеки:
- Міграція сервера на нового хостинг-провайдера або середовище VPS Хостингу
- Локальна розробка — перенесення виробничих ресурсів на тестовий екземпляр
- Архівне резервне копіювання перед масштабним оновленням теми або плагіна
- Юридичне або нормативне зберігання опублікованих медіаматеріалів
- Звільнення дискової квоти після переходу на Спільний Веб-хостинг з жорсткішими обмеженнями сховища
Порівняння методів на перший погляд
| Метод | Найкраще для | Потребує доступу до сервера | Обробляє великі бібліотеки | Формат завантаження |
|---|---|---|---|---|
| cPanel File Manager | Швидкі одноразові завантаження | Так (cPanel) | Помірно (обмеження ZIP ~2 GB) | ZIP-архів |
| FTP / SFTP клієнт | Великі або дуже великі бібліотеки | Так (FTP облікові дані) | Відмінно | Необроблені файли |
| Плагін Export Media Library | Нетехнічні користувачі, без доступу до сервера | Ні | Помірно | ZIP-архів |
| Панель керування WordPress (вручну) | Окремі файли або невеликі пакети | Ні | Погано | Окремі файли |
| Плагін резервного копіювання (UpdraftPlus тощо) | Повне резервне копіювання сайту + медіа | Ні | Добре | Власний формат або ZIP |
Метод 1: Завантаження через cPanel або файловий менеджер хостингу
Це найшвидший шлях, коли у вас є доступ до cPanel, а розмір медіабібліотеки не перевищує приблизно 2 GB у нестисненому вигляді. 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 GB часто досягають ліміту
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 є швидшим і надійнішим, ніж графічний 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 MB) або коротким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 MB кожен), щоб уникнути проблем з пам’яттю 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 GB+)
Бібліотеки розміром понад 10 GB вимагають іншого підходу, щоб уникнути тайм-аутів, вичерпання пам’яті та неповних передач.
Розбийте завантаження за роками: 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 GB, доступний cPanel | cPanel File Manager (ZIP стиснення + завантаження) |
| Бібліотека понад 2 GB, доступний SSH | rsync або tar + scp через командний рядок |
| Бібліотека понад 2 GB, лише FTP | FileZilla з кількома одночасними підключеннями |
| Немає доступу до сервера, нетехнічний користувач | Плагін Export Media Library |
| Потрібен повний знімок сайту для міграції | UpdraftPlus або All-in-One WP Migration |
| Потрібно лише кілька конкретних файлів | Копіювання URL з панелі керування WordPress або wget |
| Автоматизоване/заплановане резервне копіювання медіа | Завдання cron rsync на сервері |
Практичний контрольний список перед початком
- Переконайтеся, що доступний локальний дисковий простір становить щонайменше 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.
