Найти в Дзене
Beget

Перенос данных в облачное хранилище S3 Beget из другого объектного хранилища S3

В этой статье мы расскажем, как перенести данные из стороннего S3-хранилища в S3-хранилище от Beget. Итак, чтобы выполнить перенос данных S3, потребуются: Для копирования файлов будем использовать кроссплатформенную утилиту rclone, доступную на Linux, macOS и Windows. В этой статье мы будем использовать VPS от Beget на базе Ubuntu. Инструкции для других операционных систем доступны на официальном сайте программы. Начнем с установки rclone. Для установки в Linux/macOS введите в терминале следующую команду: sudo -v ; curl https://rclone.org/install.sh | sudo bash Чтобы перенос на Бегет был выполнен корректно, сперва добавим в rclone хранилище S3 Beget, в которое мы будем переносить данные от стороннего провайдера. Для этого перейдите в настройки конфигурации rclone, выполнив следующую команду: $ rclone config В открывшемся диалоге нажмите n и затем Enter, чтобы подключить удаленное хранилище: $ rclone config
No remotes found, make a new one?
n) New remote
s) Set configuration password
Оглавление

В этой статье мы расскажем, как перенести данные из стороннего S3-хранилища в S3-хранилище от Beget.

Итак, чтобы выполнить перенос данных S3, потребуются:

  • Созданное объектное хранилище S3, создать его вы можете в разделе “Облако” панели управления.
  • VPS или персональный компьютер, через который будет выполняться синхронизация.

Установка rclone

Для копирования файлов будем использовать кроссплатформенную утилиту rclone, доступную на Linux, macOS и Windows. В этой статье мы будем использовать VPS от Beget на базе Ubuntu. Инструкции для других операционных систем доступны на официальном сайте программы.

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

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

Добавление нового хранилища в rclone

Чтобы перенос на Бегет был выполнен корректно, сперва добавим в rclone хранилище S3 Beget, в которое мы будем переносить данные от стороннего провайдера. Для этого перейдите в настройки конфигурации rclone, выполнив следующую команду:

$ rclone config

В открывшемся диалоге нажмите n и затем Enter, чтобы подключить удаленное хранилище:

$ rclone config
No remotes found, make a new one?
n) New remote
s) Set configuration password
q) Quit config

Введите имя для удаленного хранилища, под которым оно будет отображаться в rclone:

Enter name for new remote.
name> Beget

Откроется список с типами хранилищ. Выберите тип хранилища, в нашем случае под номером 4:

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, Outscale, Petabox, RackCorp, Rclone, Scaleway, SeaweedFS, Selectel, StackPath, Storj, Synology, TencentCOS, Wasabi, Qiniu and others \ (s3)

Выберите провайдера S3 – Any other S3 compatible provider – в списке под номером 34.

Далее выберите первый пункт, чтобы выбрать ручной ввод данных для доступа к хранилищу:

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)

Затем необходимо ввести реквизиты для подключения к хранилищу. Посмотреть данные для подключения вы можете в разделе “Облако”, выбрав ваше объектное хранилище:

Укажите access key:

access_key_id> <access key>

Далее введите секретный ключ:

secret_access_key> <secret key>

В опции выбора региона укажите ru1 и нажмите Enter:

Option region.
1Region 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)

region> ru1

Затем задайте эндпоинт – он указан как URL в панели управления:

Option endpoint.
Endpoint for S3 API.
Required when using an S3 clone.
Enter a value.
Press Enter to leave empty.

endpoint> <url>

Опцию location_constraint также оставляем пустой:

Option location_constraint.
Location constraint - must be set to match the Region.
Leave blank if not sure. Used when creating buckets only. Enter a value. Press Enter to leave empty.

location_constraint>

В правилах ACL выберите первый вариант:

Press Enter to leave empty.
/ Owner gets FULL_CONTROL.
1 | No one else has access rights (default).
\ (private)

acl>

Настройка расширенной конфигурации не потребуется, нажмите n и затем Enter:

Edit advanced config?
y) Yes
n) No (default)
y/n> n

Проверьте корректность указанных данных и нажмите y, если данные верны:

Configuration complete.
Options:
- type: s3
- provider: Other
- access_key_id: JF0MZ2KW62L2TSE5DN28
- secret_access_key: SEDLmynFEFR6DcDFKhD0so1So4BPfLWLzZUCeJmq
- endpoint: https://s3.ru1.storage.beget.cloud
- acl: private
Keep this "other-storage" remote?
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote

Добавление исходного хранилища

В меню rclone config выберите пункт n) New remote. Используя последовательность действий из предыдущего пункта, добавьте исходное хранилище, из которого будет осуществлена миграция данных.

Копирование объектов

Теперь, когда хранилища добавлены в rclone, можно начинать копирование объектов. Используйте следующую команду:

rclone copy -v -P --log-file=rclone.log --transfers=256 --s3-no-check-bucket other-storage:bucket-name betutorial:bucket-name

где:

--log-file=rclone.log – файл в текущей директории, в который будет записан лог работы rclone;

--transfers=256 – количество параллельных потоков;

other-storage – наименование исходного хранилища в rclone;

bucket-name – наименование бакета в соответствующем хранилище;

Beget – наименование принимающего хранилища в rclone.

Синхронизация хранилищ

После окончания копирования файлов выполним синхронизацию только что появившихся или измененных объектов.

rclone sync -v -P --log-file=rclone.log --transfers=256 --s3-no-check-bucket other-storage:bucket-name betutorial:bucket-name

Добавленные файлы были скопированы:

Transferred: 147.047 KiB / 147.047 KiB, 100%, 0 B/s, ETA -
Checks: 3 / 3, 100%
Transferred: 1 / 1, 100%

На этом перенос облачного хранилища завершен – процесс синхронизации выполнен, сервисы можно подключать к новому хранилищу.

Надеемся, эта статья была для вас полезна, а хранение данных в S3 поможет в развитии вашего проекта. Создать бакет в Object Storage можно буквально в пару кликов.

Если возникнут вопросы, напишите нам, пожалуйста, тикет из панели управления аккаунта (раздел “Помощь и поддержка”), а если вы захотите обсудить продукты Beget, перенос данных в облачное хранилище S3 или другие вопросы – ждем вас в нашем сообществе в Telegram.