Вступление
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:
Конечной точкой всегда будет регион, в котором вы создали пространство, за которым следует.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…:
Следуйте инструкциям, чтобы извлечь файлы из 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
, чтобы узнать больше о функциях, которые предоставляет инструмент.