Как перенести пространства DigitalOcean между регионами с помощью Rclone

Вступление

DigitalOcean Spaces - это служба хранения объектов, разработанная, чтобы упростить и упростить хранение и обслуживание больших объемов данных.

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

Создание ключей API и поиск информации о конечных точках пробелов

Прежде чем мы начнем устанавливать и настраивать Rclone для копирования наших объектов между Spaces, нам потребуется некоторая информация о нашей учетной записи DigitalOcean Spaces. Нам понадобится API-ключ Spaces, и нам нужно будет знать регионы и имена наших исходных и целевых Spaces.

Генерация API-ключа DigitalOcean Spaces

Чтобы создать ключ API DigitalOcean Spaces, следуйте разделу «Создание ключа доступа» нашей документацииHow To Create a DigitalOcean Space API Key.

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

Поиск пространства S3-совместимой конечной точки

Далее нам нужно найти конечную точку для каждого пространства. Вы можете просмотреть конечную точку пространства на панели управления DigitalOcean, выбрав пространство и просмотрев вкладкуSettings:

DigitalOcean Spaces endpoint

Конечной точкой всегда будет регион, в котором вы создали пространство, за которым следует.digitaloceanspaces.com. Запишите конечную точку для обоих ваших пространств. Будем ли мы использовать эту информацию при создании конфигурацииrclone.

Установка Rclone

Теперь вы готовы к установкеRclone. Вы можете сделать это на своем локальном компьютере или - если у вас ограниченная пропускная способность - вы можете установить Rclone на капле, расположенной в области Spaces источника или назначения.

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

Как только вы загрузите zip-файл Rclone на свой компьютер, следуйте приведенному ниже разделу, который соответствует вашей платформе.

Linux

Прежде чем мы сможем распаковать архив, нам нужно убедиться, что утилитаunzip доступна.

Если вы используетеUbuntu илиDebian, вы можете обновить локальный индекс пакета и установитьunzip, набрав:

sudo apt update
sudo apt install unzip

Если вы используетеCentOS илиFedora, вы можете установитьunzip, набрав:

sudo yum install unzip

Установивunzip, перейдите в каталог, в который вы загрузили zip-файлrclone:

cd ~/Downloads

Далее разархивируйте архив и перейдите во вновь созданный каталог:

unzip rclone*
cd rclone-v*

Отсюда мы можем скопировать двоичный файл в каталог/usr/local/bin, чтобы он был доступен для всей системы:

sudo cp rclone /usr/local/bin

Затем мы добавляем страницу справочника в нашу систему, чтобы мы могли легко получить справку по синтаксису команды и доступным опциям. Убедитесь, что локальный каталог руководства доступен, а затем скопируйте файлrclone.1:

sudo mkdir -p /usr/local/share/man/man1
sudo cp rclone.1 /usr/local/share/man/man1

Затем обновите базу данныхman, чтобы добавить новую страницу руководства в систему:

sudo mandb

Наконец, мы можем создать каталог конфигурации Rclone и открыть файл конфигурации:

mkdir -p ~/.config/rclone
nano ~/.config/rclone/rclone.conf

Это откроет ваш текстовый редактор с новым пустым файлом. Чтобы продолжить, перейдите к разделуConfiguring Rclone.

Macos

Если вы используете macOS, начните с перехода в терминале к каталогу, в который вы загрузили zip-файлrclone:

cd ~/Downloads

Затем разархивируйте файл и перейдите во вновь созданный каталог:

unzip -a rclone*
cd rclone-v*

Затем убедитесь, что каталог/usr/local/bin доступен, а затем скопируйте в него двоичный файлrclone:

sudo mkdir -p /usr/local/bin
sudo cp rclone /usr/local/bin

Наконец, мы можем создать каталог конфигурации и открыть файл конфигурации:

mkdir -p ~/.config/rclone
nano ~/.config/rclone/rclone.conf

Это откроет ваш текстовый редактор с новым пустым файлом. Чтобы продолжить, перейдите к разделуConfiguring Rclone.

Windows

Если вы работаете в Windows, начните с перехода в каталог «Загрузки» в проводнике Windows. Выберите zip-файлrclone и щелкните его правой кнопкой мыши. В появившемся контекстном меню нажмитеExtract All…:

Windows extract rclone zip file

Следуйте инструкциям, чтобы извлечь файлы из zip-архива.

Утилитуrclone.exe необходимо запускать из командной строки. Откройте новое окноCommand Prompt (программаcmd.exe), нажав кнопку Windows в нижнем левом углу, набравcmd и выбравCommand Prompt.

Внутри перейдите к путиrclone, который вы извлекли, набрав:

cd "%HOMEPATH%\Downloads\rclone*\rclone*"

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

dir
Output10/23/2017  01:02 PM              .
10/23/2017  01:02 PM              ..
10/23/2017  01:02 PM                17 git-log.txt
10/23/2017  01:02 PM           296,086 rclone.1
10/23/2017  01:02 PM        16,840,192 rclone.exe
10/23/2017  01:02 PM           315,539 README.html
10/23/2017  01:02 PM           261,497 README.txt
               5 File(s)     17,713,331 bytes
               2 Dir(s)  183,296,266,240 bytes free

Вам нужно будет находиться в этом каталоге всякий раз, когда вы хотите использовать командуrclone.exe.

[.note] #Note: В macOS и Linux мы запускаем инструмент, набираяrclone, но в Windows команда называетсяrclone.exe. В остальной части этого руководства мы будем предоставлять команды какrclone, поэтому не забудьте заменятьrclone.exe каждый раз при работе в Windows.
#

Затем мы можем создать каталог конфигурации и открыть файл конфигурации, чтобы определить наши учетные данные S3 и Spaces:

mkdir "%HOMEPATH%\.config\rclone"
notepad "%HOMEPATH%\.config\rclone\rclone.conf"

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

Конфигурирование Rclone

Мы настроим наши два региона DigitalOcean Spaces как «удаленные» Rclone в файле конфигурации Rclone. Вставьте следующий раздел в файл конфигурации, чтобы определить первый регион:

~/.config/rclone/rclone.conf

[spaces-sfo2]
type = s3
env_auth = false
access_key_id = your_spaces_access_key
secret_access_key = your_spaces_secret_key
endpoint = sfo2.digitaloceanspaces.com
acl = private

Здесь мы определяем новый «удаленный»rclone с именемspaces-sfo2. Измените имя региона в соответствии с областью пробелов, которую вы настраиваете.

Мы устанавливаемtype наs3, чтобыrclone знал подходящий способ взаимодействия с удаленным ресурсом хранения и управления им. Мы определим учетные данные для доступа к Spaces в этом файле конфигурации, поэтому мы можем установитьenv_auth наfalse.

Затем мы устанавливаем переменныеaccess_key_id иsecret_access_key для нашего ключа доступа к Spaces и секретного ключа соответственно. Обязательно измените значения на учетные данные, связанные с вашей учетной записью.

Мы устанавливаемendpoint на конечную точку Spaces, которую мы искали ранее.

Наконец, мы устанавливаемacl наprivate, чтобы защитить наши активы, пока мы не захотим ими поделиться.

Затем создайте копию только что созданного вами конфигурационного блока, затем обновите имя и регион конечной точки, чтобы отразить ваш второй регион:

~/.config/rclone/rclone.conf

. . .

[spaces-nyc3]
type = s3
env_auth = false
access_key_id = your_spaces_access_key
secret_access_key = your_spaces_secret_key
endpoint = nyc3.digitaloceanspaces.com
acl = private

Остальная конфигурация должна оставаться такой же, как и для первого региона. Сохраните и закройте файл, когда вы закончите.

В macOS и Linux обязательно заблокируйте разрешения для файла конфигурации, поскольку наши учетные данные находятся внутри:

chmod 600 ~/.config/rclone/rclone.conf

В Windows разрешения не предоставляются пользователям без прав администратора, если они не предоставлены явно, поэтому нам не нужно настраивать доступ вручную.

Затем мы будем использоватьrclone для исследования наших пространств и синхронизации данных между ними.

Копирование объектов из S3 в пробелы

Теперь, когда наша конфигурация завершена, мы готовы передать наши файлы.

Начните с проверки настроенных пультов ДУrclone:

rclone listremotes
Outputspaces-nyc3:
spaces-sfo2:

Обе области, которые мы определили, отображаются.

Мы можем просмотреть доступные пространства, попросивrclone перечислить «каталоги», связанные с пультами (не забудьте добавить двоеточие в конец имени удаленного устройства):

rclone lsd spaces-sfo2:
Output          -1 2019-09-23 13:07:54        -1 source-space

Приведенный выше вывод показывает, что один пробел с именемsource-space был найден в областиsfo2.

Вы можете повторить процедуру для просмотра другого региона:

rclone lsd spaces-nyc3:
Output          -1 2019-09-23 13:08:28        -1 destination-space

Чтобы просмотреть содержимое пробела, вы можете использовать командуtree. Передайте удаленное имя, затем двоеточие и название «каталога», который вы хотите перечислить (имя пространства):

rclone tree spaces-sfo2:source-space
Output/
├── Photos
│   ├── 2019.01.24-23.10.27.png
│   ├── 2019.01.24-23.11.39.png
│   ├── 2019.01.24-23.18.00.png
│   ├── 2019.01.24-23.18.18.png
│   ├── 2019.01.24-23.18.30.png
│   ├── 2019.01.24-23.19.32.png
│   ├── 2019.01.24-23.23.06.png
│   ├── 2019.01.24-23.23.53.png
│   ├── 2019.01.24-23.25.14.png
│   ├── 2019.01.24-23.26.22.png
│   ├── 2019.01.25-12.43.35.png
│   ├── 2019.03.13-14.35.34.png
│   └── 2019.03.13-14.40.52.png
└── Photos.zip

1 directories, 14 files

Когда вы будете готовы, вы можете скопировать файлы между пробелами, набрав:

rclone sync spaces-sfo2:source-space spaces-nyc3:destination-space

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

[.note] #Note: Если вы ранее не создавали целевое пространство в указанном регионе,rclone попытается создать его для вас с заданным именем. Это не удастся, если указанное имя уже используется другой учетной записью или если имя не соответствует требованиям к именованию для DigitalOcean Spaces (только строчные буквы, цифры и тире).
#

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

rclone tree spaces-nyc3:destination-space
Output/
├── Photos
│   ├── 2019.01.24-23.10.27.png
│   ├── 2019.01.24-23.11.39.png
│   ├── 2019.01.24-23.18.00.png
│   ├── 2019.01.24-23.18.18.png
│   ├── 2019.01.24-23.18.30.png
│   ├── 2019.01.24-23.19.32.png
│   ├── 2019.01.24-23.23.06.png
│   ├── 2019.01.24-23.23.53.png
│   ├── 2019.01.24-23.25.14.png
│   ├── 2019.01.24-23.26.22.png
│   ├── 2019.01.25-12.43.35.png
│   ├── 2019.03.13-14.35.34.png
│   └── 2019.03.13-14.40.52.png
└── Photos.zip

1 directories, 14 files

Для более надежной проверки используйте подкомандуcheck для сравнения объектов в обоих регионах:

rclone check spaces-sfo2:source-space spaces-nyc3:destination-space
Output2019/09/23 14:29:11 NOTICE: S3 bucket destination-space: 0 differences found
2019/09/23 14:29:11 NOTICE: S3 bucket destination-space: 14 matching files

Это позволит сравнить значения хеш-функции каждого объекта на обоих пультах. Вы можете получить сообщение о том, что некоторые хеши не могут быть сравнены. В этом случае вы можете повторно запустить команду с флагом--size-only (который просто сравнивает на основе размера файла) или флагом--download (который загружает каждый объект с обоих пультов для локального сравнения), чтобы проверить передачу целостность.

Заключение

В этом руководстве мы рассмотрели, как переносить объекты между двумя областями DigitalOcean Spaces. Мы собрали учетные данные API и информацию о конечных точках из службы Spaces, установили и настроили утилитуrclone на нашем локальном компьютере, а затем скопировали все объекты из исходного пространства в целевое пространство.

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

Related