Для переноса данных в S3 от Рег.ру можно использовать утилиту rclone. Она позволяет копировать данные из любого хранилища S3 или аналогичных сервисов в другое хранилище S3 или сервис с поддерживаемым API. Rclone поддерживает множество сервисов, включая Amazon S3 (и прочие сервисы с S3 API), Google Cloud Storage, Azure Blob Storage, Yandex Disk, Dropbox и другие. Полный список совместимых сервисов можно найти на странице проекта.
Обратите внимание
Как установить rclone
Rclone распространяется в виде исходного кода или бинарных сборок, доступных на GitHub. Также для macOS его можно установить через Homebrew. Однако для других операционных систем рекомендуется скачивать последнюю версию с GitHub, так как репозитории ОС могут быть устаревшими.
Установка rclone через Homebrew (macOS)
Чтобы установить rclone на macOS, воспользуйтесь командой:
brew install rclone
Установка rclone с GitHub
Эта инструкция подойдет для UNIX-подобных ОС — Linux, macOS, *BSD. Инструкции по установке для других ОС, например Windows, можно найти в официальной документации.
Чтобы скачать rclone с GitHub и установить его:
- 1 Перейдите на страницу релизов Rclone на GitHub.
- 2 Найдите последний релиз (Latest) и выберите сборку, соответствующую вашей ОС и архитектуре процессора.
- 3 Скачайте архив и распакуйте его. В архиве будет исполняемый файл rclone — его можно переместить в каталог /bin или другой (/usr/bin или /usr/local/bin), указанный в переменной $PATH, либо оставить на месте. Все последующие инструкции предполагают, что rclone уже установлен в каталог, добавленный в $PATH, поэтому команды будут указывать только название файла rclone, без полного пути к нему.
Настройка rclone
Для настройки rclone создается конфигурационный файл, в котором описываются параметры подключения к хранилищам данных (remote’ам — в терминах rclone). Конфигурационный файл содержит всю информацию о конкретном remote’е, включая ключи доступа, поэтому его рекомендуется хранить с учетом этой особенности или защищать с помощью встроенного шифрования.
Настройка подключения к исходному хранилищу
Для создания нового конфигурационного файла через интерактивное меню:
-
1
Выполните команду:
rclone config
-
2
Вы увидите следующее сообщение:
No remotes found, make a new one? n) New remote s) Set configuration password q) Quit config n/s/q>
Выберите n, чтобы создать новый remote.
-
3
Укажите имя remote, например source для источника данных:
Enter name for new remote. name> source
-
4
Затем выберите тип провайдера для remote’а, например S3:
… 4 / Amazon S3 Compliant Storage Providers including AWS, Alibaba, ArvanCloud, Ceph, ChinaMobile, Cloudflare, DigitalOcean, Dreamhost, GCS, HuaweiOBS, IBMCOS, IDrive, IONOS, LyveCloud, Leviia, Liara, Linode, Magalu, Minio, Netease, Petabox, RackCorp, Rclone, Scaleway, SeaweedFS, StackPath, Storj, Synology, TencentCOS, Wasabi, Qiniu and others … Storage> 4
Здесь нужно выбрать конкретного вендора сервиса, если есть сомнения — можно выбрать следующее:
… 32 / Any other S3 compatible provider \ (Other) … Storage> 32
-
5
Далее укажите, что параметры будут переданы при настройке. Для этого выберите 1 и нажмите Enter:
Option env_auth. Get AWS credentials from runtime (environment variables or EC2/ECS meta data if no env vars). Only applies if access_key_id and secret_access_key is blank. Choose a number from below, or type in your own boolean value (true or false). Press Enter for the default (false). 1 / Enter AWS credentials in the next step. \ (false) 2 / Get AWS credentials from the environment (env vars or IAM). \ (true) env_auth> 1
-
6
Введите Access Key ID и Secret Key:
Option access_key_id. AWS Access Key ID. Leave blank for anonymous access or runtime credentials. Enter a value. Press Enter to leave empty. access_key_id> ****************** Option secret_access_key. AWS Secret Access Key (password). Leave blank for anonymous access or runtime credentials. Enter a value. Press Enter to leave empty. secret_access_key> ******************
-
7
Далее появится окно для выбора региона. Оставьте значение по умолчанию — для этого нажмите Enter:
Option region. Region to connect to. Leave blank if you are using an S3 clone and you don't have a region. Choose a number from below, or type in your own value. Press Enter to leave empty. / Use this if unsure. 1 | Will use v4 signatures and an empty region. \ () / Use this only if v4 signatures don't work. 2 | E.g. pre Jewel/v10 CEPH. \ (other-v2-signature)
-
8
В качестве Endpoint укажите адрес подключения источника данных:
Endpoint for S3 API. Required when using an S3 clone. Enter a string value. Press Enter for the default (""). Choose a number from below, or type in your own value endpoint> https://example.com
- 9 Остальные настройки rclone config file (например, ACL) оставьте по умолчанию — для этого нажмите Enter. Продвинутую конфигурацию тоже можно оставить по умолчанию, для этого введите n и нажмите Enter.
- 10 На последнем этапе вы увидите информацию о конфигурации. Убедитесь в правильности настроек, затем введите y и нажмите Enter.
Настройка подключения к хранилищу S3 от Рег.ру
Настройте remote для хранилища S3 от Рег.ру, используя описанные выше шаги:
- в шаге 3 в качестве названия укажите destination,
- в шаге 8 качестве endpoint’а используйте адрес https://s3.regru.cloud.
Проверка подключения
Убедитесь, что всё работает, сделав листинг бакетов в обоих remote’ах:
rclone ls source:
rclone ls destination:
Миграция данных в хранилище S3
Для копирования объектов используйте следующую команду:
rclone sync –progress –verbose source:<source-bucket>/ destination:<destination-bucket>/
Где:
- <source-bucket> — имя бакета-источника,
- <destination-bucket> — имя бакета назначения.
Важно
Команда rclone sync, пример которой приведен выше, синхронизирует данные. Она удалит всё текущее содержимое бакета назначения, приведя его в полное соответствие бакету-источнику. Метаданные при этом не будут синхрозированы полностью.
Готово, перенос S3 в Рег.ру завершен.
Помогла ли вам статья?
Спасибо за оценку. Рады помочь 😊