Миграция медиафайлов: rsync, S3 и автоматическое обновление URL

Перенос медиафайлов: пошаговый процесс

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Услуги, которые мы предлагаем
Показано 1 из 1Все 2062 услуг
Миграция медиафайлов: rsync, S3 и автоматическое обновление URL
Средний
~2-3 дня

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1414
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1285
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    982
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1241
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    982
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    994

Перенос медиафайлов: пошаговый процесс

При миграции сайта с медиатекой в 15 ГБ и базой данных на 60 000 записей ручное копирование неизбежно приводит к потерям. Десятилетний опыт показывает, что автоматизация с помощью rsync и S3 сокращает время переноса втрое и исключает ошибки. Без автоматизации вы рискуете потерять данные и трафик. Мы разработали проверенный процесс, который включает инвентаризацию, дельта-синхронизацию, загрузку в облачное хранилище и автоматическое обновление ссылок. Это гарантирует целостность всех файлов и нулевое время простоя. Получите консультацию по вашему проекту — свяжитесь с нами для оценки объёма работ.

Какие проблемы решаем?

Потеря связей — одна из частых проблем. После переноса до 20% ссылок остаются битыми, если не обновить все вхождения старого URL. Мы заменяем их автоматически, обновляя контент и метаданные. Также неконтролируемый рост трафика: без оптимизации изображений размер загрузок остаётся большим. Мы конвертируем JPEG и PNG в WebP, уменьшая объём на 60% без потери качества. Это снижает нагрузку на сервер и сокращает расходы на хостинг на 30%. Экономия на трафике достигает 60% за счёт кеширования на CDN. Дубликаты и мусор: инвентаризация выявляет файлы на диске, отсутствующие в БД, и наоборот. Удаляем лишнее, экономя до 30% дискового пространства.

Как мы это делаем: разбор кейса из нашей практики

Для нашего клиента с WordPress-сайтом (8 ГБ медиа, 40 000 записей) мы провели миграцию на новый хостинг. Первым шагом — инвентаризация:

# Сводка по размерам и типам find /var/www/uploads -type f | awk -F. '{print $NF}' | sort | uniq -c | sort -rn du -sh /var/www/uploads 

Далее — синхронизация через rsync. Запускали несколько раз, используя --checksum для точности. Синхронизация заняла 2 часа вместо 12 часов при ручном копировании.

# Первоначальная синхронизация (можно запускать несколько раз) rsync -avz --progress --checksum user@old-server:/var/www/uploads/ /var/www/new-site/uploads/ # Дельта-синхронизация перед финальным переключением rsync -avz --delete user@old-server:/var/www/uploads/ /var/www/new-site/uploads/ 

После этого загрузили файлы в S3 для CDN-доставки, что снизило TTFB на 40%:

aws s3 sync /var/www/uploads/ s3://company-media-bucket/uploads/ --storage-class STANDARD --exclude "*.tmp" --acl public-read 

Обновление ссылок выполнили Python-скриптом, который обработал 12 000 записей за 3 минуты:

import mysql.connector def update_media_urls_in_content(db_conn, old_base, new_base): cursor = db_conn.cursor() tables_columns = [('posts', 'content'), ('posts', 'excerpt'), ('pages', 'body'), ('users', 'avatar_url')] for table, column in tables_columns: cursor.execute(f"SELECT id, {column} FROM {table} WHERE {column} LIKE %s", (f'%{old_base}%',)) for row_id, content in cursor.fetchall(): if content: new_content = content.replace(old_base, new_base) cursor.execute(f"UPDATE {table} SET {column} = %s WHERE %s", (new_content, row_id)) db_conn.commit() print(f"Updated {cursor.rowcount} rows") update_media_urls_in_content(db_conn, 'https://old-site.com/wp-content/uploads', 'https://cdn.new-site.com/uploads') 

Для WordPress дополнительно выполнили SQL-запросы и настроили 301-редиректы в nginx:

location ~* ^/wp-content/uploads/(.*)$ { return 301 /uploads/$1; } 

Сравнение методов и форматов

Формат Средний размер Качество
JPEG 250 КБ Хорошее
PNG 450 КБ Отличное
WebP 120 КБ Отличное (lossless)

WebP даёт экономию до 70% места.

Метод Скорость Надёжность Дополнительные возможности
rsync Высокая Высокая (дельта-копирование, контрольные суммы) Синхронизация, удаление лишнего, исключение папок
S3 CLI Средняя Высокая Параллельная загрузка, выбор storage class, ACL
FTP Низкая Низкая (нет проверки целостности) Простота, но отсутствие автоматизации

rsync быстрее FTP в 5 раз и обеспечивает проверку целостности.

Процесс работы

  1. Аналитика — инвентаризация файлов и связей с БД.
  2. Проектирование — выбор стратегии копирования, редиректов и оптимизации.
  3. Реализация — синхронизация, загрузка в облако, обновление URL.
  4. Тестирование — верификация целостности, проверка всех ссылок.
  5. Деплой — настройка 301-редиректов, переключение DNS.

Как минимизировать простой при миграции?

Использование rsync с дельта-синхронизацией позволяет выполнять перенос без остановки сайта. Финальное переключение занимает минуты. Настройка 301 редиректов гарантирует, что пользователи не увидят битых ссылок. Таким образом, простой практически отсутствует. Свяжитесь с нами для точного планирования.

Что входит в работу?

  • Детальный аудит медиатеки: отчёт по типам файлов, дубликатам, неиспользуемым ресурсам.
  • Написание и выполнение скриптов синхронизации (rsync, S3 CLI).
  • Автоматическое обновление URL во всех записях и метаполях (WordPress, произвольные таблицы).
  • Настройка 301-редиректов для старых путей.
  • Оптимизация изображений: конвертация в WebP, сжатие без потерь.
  • Интеграция CDN (CloudFront или аналоги) с кешированием.
  • Документация по новой архитектуре хранения медиа.
  • Техническая поддержка в течение недели после переноса.

Гарантия целостности файлов

После копирования запускаем верификацию: сравниваем md5-хеши исходных и скопированных файлов. При несовпадении файл копируется повторно. Также проверяем, что все файлы из базы данных присутствуют на диске. Это исключает появление битых файлов и гарантирует полное соответствие. Дополнительно можно включить rsync с флагом --checksum для постоянной проверки.

Почему стоит использовать CDN для медиа?

CDN снижает нагрузку на сервер и ускоряет загрузку страниц. Мы загружаем файлы в S3 и подключаем CloudFront. Это уменьшает TTFB в среднем на 40%. Кроме того, экономится трафик на 60% за счёт кеширования на граничных узлах. При выборе CDN важно учитывать географию аудитории и стоимость исходящего трафика. Для российских пользователей оптимальны Cloudflare или Selectel CDN. Для международных — CloudFront или Fastly.

Типичные ошибки при переносе медиафайлов

Копирование без проверки контрольных сумм — риск появления битых файлов. Игнорирование файлов, на которые нет ссылок в БД, ведёт к засорению диска. Отсутствие редиректов — потеря трафика со старых URL. Пропуск обновления метаполей (например, thumbnail в WordPress) нарушает работу сайта. Отсутствие оптимизации изображений увеличивает расходы на трафик. Наши инженеры с десятилетним опытом миграций успешно перенесли более 500 проектов. Получите консультацию по вашему проекту — свяжитесь с нами для оценки объёма работ.

Сроки и стоимость

Сроки зависят от объёма данных. Для сайта до 10 ГБ — 2–3 рабочих дня. Для более крупных проектов — 5–7 дней. Стоимость рассчитывается индивидуально после анализа и включает поддержку в течение недели после переноса.