Миграция данных в объектное хранилище S3

12 ноября 2025 9 мин 15

Миграция данных между S3-совместимыми хранилищами часто требуется, если нужно сменить хостинг-провайдера, сохранить данные в одной базе или оптимизировать затраты.

В статье разберёмся, как перенести данные: от установки и настройки до непосредственного копирования. Этот подход позволяет мигрировать быстро, с минимальными трудозатратами и с соблюдением требований безопасности.

Обратите внимание: в инструкции будем использовать утилиту Rclone. Она не переносит политики, установленные на исходники — только данные и базовые метаданные объектов.

Как установить Rclone на разных ОС

Утилита работает с большинством известных ОС: Windows, Linux, macOS, FreeBSD, OpenBSD и другими.

Windows

Скачайте архив на сайте разработчика и распакуйте его в каталог на своём устройстве. Затем добавьте каталог с файлами Rclone в переменную окружения:

  1. Скопируйте путь до каталога с Rclone.

  2. С помощью сочетания клавиш Win + R вызовите окно Запуск команд и выполните команду sysdm.cpl.

Запуск командной строки
  1. Откроется окно Свойства системы (System Properties). Перейдите на вкладку Дополнительно и кликните Переменные среды (Environment Variables).

Переменные среды
  1. Найдите параметр PATH и нажмите Изменить (Edit).

Изменение параметра PATH
  1. Добавьте путь каталога с распакованным Rclone в список и сохраните изменения.

Добавление пути каталога

Linux/macOS

Для установки в Linux/macOS введите в терминале следующую команду:  

curl https://rclone.org/install.sh | sudo bash

В большинстве дистрибутивов Linux Rclone уже присутствует в репозиториях по умолчанию. Для установки программы воспользуйтесь командой пакетного менеджера, соответствующей вашей системе.

Для Debian-based дистрибутивов Linux

apt install rclone 

Для актуальных версий RHEL-based:

dnf install rclone

Для предыдущих версий RHEL-based:

yum install rclone

Для RHEL-based систем может потребоваться сначала включить репозиторий [EPEL] с помощью следующей команды:

yum install epel-release

dnf install rclone

Регистрация хранилища в Rclone

Для работы с утилитой требуется указать данные доступа к исходному и целевому хранилищам. В rclone зарегистрированное S3-хранилище имеет имя “remote”. Rclone сохраняет ключи доступа в своём файле конфигурации, поэтому важно быть уверенным в безопасности их хранения на конкретной машине. Лучше добавлять ключи от имени пользователя, доступ к которому есть только у вас.

Чтобы зарегистрировать remote, можно использовать интерактивное меню rclone или создать текстовый файл конфигурации вручную. Рассмотрим оба способа. 

Настройка через интерактивное меню

Для запуска введите в консоль команду: 

rclone config
Регистрация remote в интерактивном меню

Выберите n и создайте новый remote, чтобы зарегистрировать данные S3 в конфигурации rclone.

Укажите имя хранилища. Оно может быть любым: например, назовём S3-источник “source”, а S3-приёмник, на который мы будем копировать, — “destination”. 

Задание названия хранилища

Выберите тип хранилища, указывая S3, то есть пункт 5 из списка:

Выбор типа хранилища

Укажите провайдера хранилища. Здесь достаточно просто выбрать пункт 24 (Другой):

Ввод провайдера

Укажите, что реквизиты доступа будут переданы при настройке. Для этого выберите 1 и кликнете Enter:

Передача реквизита доступа

Введите реквизиты S3: Ключ доступа (Access Key ID) и Секретный ключ (Secret Key). Ключи можно узнать со стороны провайдера S3. У FirstDEDIC аутентификационные данные можно найти в разделе «Доступы» для выбранного хранилища:

Ввод реквизитов S3

 Затем нужно выбрать регион. Значение можно оставить по умолчанию, нажав Enter:

Выбор региона

В качестве Endpoint укажите URL подключения к хранилищу, к которому будем подключаться:

Задание URL

Остальные настройки оставьте по умолчанию — для этого нажмите Enter. Продвинутую конфигурацию также нужно оставить по умолчанию: выберите n и кликните Enter.

Конфигурация по-умолчанию

На последнем этапе вы увидите информацию о конфигурации. Убедитесь в правильности настроек, введите y и нажмите Enter:

Проверка настроек

Настройка приёмника завершена. Таким же образом повторим настройку для хранилища приёмника, получив два зарегистрированных remote в конфигурации.

Настройки через конфигурационный файл

Также настройки можно внести и напрямую: для этого нужно указать данные в конфигурационном файле rclone.conf. Это делается через любой удобный текстовый редактор. Для Windows нужно завести новый текстовый файл txt-формата (в дальнейшем изменив его расширение на .conf), для Linux — использовать vim или nano:

vim /root/.config/rclone/rclone.conf

Пропишите аналогичный код с указанием типа, ключей доступа, URL-адрес хранилища и региона для S3-источника (source) и S3-приёмника (destination):

[source]
type = s3
access_key_id = КЛЮЧ_ДОСТУПА_ИСТОЧНИКА
secret_access_key = СЕКРЕТНЫЙ_КЛЮЧ_ИСТОЧНИКА
endpoint = URL_S3_ИСТОЧНИКА
region = ru-central1

[destination]
type = s3
access_key_id = КЛЮЧ_ДОСТУПА_ПРИЁМНИКА
secret_access_key = СЕКРЕТНЫЙ_КЛЮЧ_ПРИЁМНИКА
endpoint = URL_S3_ПРИЁМНИКА
region = ru-central1

Копирование

Шаг 1. Проверьте корректность подключения по введенным данным. Для этого используйте команду rclone ls с указанием имени remote:

rclone ls source
rclone ls destination

Команда отобразит список бакетов в хранилище, если конфигурация задана верно. Если бакеты отсутствуют, система вернёт пустую строку. Если же в конфигурации есть ошибки и данные некорректны, консоль выведет сообщение об ошибке подключения — в этом случае нужно перепроверить настройки.

Шаг 2. Запустите копирование. Для этого введите команду вида:

rclone copy -v -P --log-file=rclone.log --transfers=256 --retries=100 --retries-sleep 5m --low-level-retries=100 --timeout=10m source:имя_бакета_источника/ destination:имя_бакета_приёмника/

Перед началом копирования обязательно проверьте объём данных в хранилище, оцените время на проведение переноса и стоимость трафика у вашего провайдера. При большом объёме данных в хранилище эти параметры могут быть критичными. 

Опции, указанные в команде:

--log-file — запись лога вывода rclone в файл rclone.log;

--transfers — лимит количества файлов, передающихся одновременно;

--retries — число повторных попыток подключения;

--retries-sleep — время ожидания до следующей попытки подключения; 

--low-level-retries — количество повторных попыток передачи данных на низких уровнях хранилищ;

--timeout — таймаут операции ввода-вывода. Это максимальное время, которое отводится на передачу данных. Если операция началась, но зависла, по истечении этого времени она будет прервана как невыполненная.

В конце команды пропишите заданное имя remote S3-хранилища — источника и приёмника с указанием бакетов. 

Шаг 3. Укажите дополнительные опции. Например, чтобы ограничить скорость передачи данных, можно добавить опцию --bwlimit, указав максимально допустимую скорость передачи в мегабайтах:

rclone copy -v -P --log-file=rclone.log --transfers=256 --retries=100 --retries-sleep 5m --low-level-retries=100 --timeout=10m --bwlimit=100
source:имя_бакета_источника/ destination:имя_бакета_приёмника/

Эта функция полезна, если исходящий трафик от провайдера тарифицируется, и важно сократить издержки при переезде. Другие опции Rclone указаны в официальной документации

Если задача — просто скопировать данные, и не нужна настройка объёма трафика между хранилищами, рекомендуем использовать команду, которую мы привели выше, изменив имена remote и бакетов на нужные.

Перед запуском копирования советуем проверить корректность выбранных параметров, запустив получившуюся команду с опцией –dry-run

Шаг 4. Завершение переноса и проверка результата. После завершения копирования rclone выведет статистику об объёме переданных файлов, скорости соединения и затраченном времени:

Transferred:       36.732 KiB / 36.732 KiB, 100%, 9.179 KiB/s, ETA 0s
Checks:               377 / 377, 100%
Transferred:           26 / 26, 100%
Elapsed time:         6.6s

Готово: данные успешно перенесены. Теперь можно настраивать сервис для работы  с новым S3-хранилищем. 

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


Теги

Мы используем файлы cookie для работы сайта Вы можете отключить cookies в настройках своего браузера, но это может негативно повлиять на работу сайта. Оставаясь на сайте, вы соглашаетесь с использованием файлов cookie.