Вступление
DigitalOcean Spaces - это сервис хранения объектов, разработанный для упрощения и экономии затрат при хранении и обслуживании больших объемов данных. Если вы ранее полагались на другие сервисы хранения объектов, миграция данных в Spaces может быть одной из ваших первых задач.
В этом руководстве мы расскажем, как перенести данные в DigitalOcean Spaces из сервиса блочного хранилища Amazon S3 с помощью утилиты https://rclone.org/ [+ rclone +
]. Мы покажем, как установить + rclone +
, параметры конфигурации, используемые для доступа как к службам хранения, так и к командам, которые вы можете использовать для синхронизации ваших файлов и проверки их целостности в Spaces.
Создание ключей API и поиск свойств корзины
Прежде чем мы начнем устанавливать и настраивать + rclone +
для копирования наших объектов в Spaces, нам потребуется некоторая информация о наших учетных записях Amazon S3 и DigitalOcean Spaces. Нам понадобится набор ключей API для обеих служб, которые может использовать инструмент, и нам нужно будет знать значения ограничений по региону и местоположению для наших сегментов.
Создание ключа API DigitalOcean Spaces и поиск конечной точки API
Чтобы создать ключ API DigitalOcean Spaces, следуйте разделу «Создание ключа доступа» нашего https://www.digitalocean.com/community/tutorials/how-to-create-a-digitalocean-space-and-api-key # create-an-access-key [Как создать пространство DigitalOcean и API Key].
Сохраните идентификатор ключа доступа и секретный ключ, чтобы мы могли настроить + rclone +
для доступа к нашей учетной записи.
Далее нам нужно найти подходящую конечную точку API. Если вы уже создали DigitalOcean Space, в который хотите перенести свои объекты, вы можете просмотреть конечную точку Space в Панели управления DigitalOcean, выбрав Space и открыв вкладку * Настройки *:
изображение: https: //assets.digitalocean.com/articles/s3_migration/do_spaces_endpoint.png [Конечная точка DigitalOcean Spaces]
Если вы еще не создали пространство, + rclone +
может автоматически создать пространство, выбранное вами в процессе копирования. Конечной точкой в этом случае будет область Spaces, которую вы хотите использовать, за которой следует + .digitaloceanspaces.com +
. Вы можете найти доступные области для пространств на панели управления DigitalOcean, просмотрев параметры выбора на странице создания пространств. На момент написания этой статьи доступна только область «nyc3» (с конечной точкой + nyc3.digitaloceanspaces.com +
).
Создание ключа API Amazon S3
Если у вас еще нет ключа API Amazon с правами на управление активами S3, вам необходимо сгенерировать его сейчас. В консоли управления AWS нажмите на имя своей учетной записи и выберите * Мои учетные данные безопасности * в раскрывающемся меню:
изображение: https: //assets.digitalocean.com/articles/s3_migration/select_security_credentials.png [AWS выберите учетные данные безопасности]
Затем выберите * Users * в левом меню, а затем нажмите кнопку * Add user *:
изображение: https: //assets.digitalocean.com/articles/s3_migration/add_user_button.png [кнопка добавления пользователя AWS]
Введите * Имя пользователя * и выберите * Программный доступ * в разделе * Тип доступа *. Нажмите кнопку * Далее: разрешения *, чтобы продолжить:
изображение: https: //assets.digitalocean.com/articles/s3_migration/user_details.png [Данные пользователя AWS]
На следующей странице выберите параметр * Прикрепить существующие политики напрямую * вверху, а затем введите * s3read * в фильтре * Тип политики *. Установите флажок * AmazonS3ReadOnlyAccess *, а затем нажмите кнопку * Next: Review *, чтобы продолжить:
изображение: https: //assets.digitalocean.com/articles/s3_migration/s3_read_access.png [доступ для чтения AWS S3]
Просмотрите сведения о пользователе на следующей странице, а затем нажмите кнопку * Создать пользователя *, когда будете готовы:
изображение: https: //assets.digitalocean.com/articles/s3_migration/create_user_button.png [AWS создать пользователя]
На последней странице вы увидите учетные данные для вашего нового пользователя. Нажмите на ссылку * Показать * в столбце * Секретный ключ доступа *, чтобы просмотреть учетные данные:
изображение: https: //assets.digitalocean.com/articles/s3_migration/aws_secret_keys.png [секретные ключи AWS]
Скопируйте * Идентификатор ключа доступа * и * Секретный ключ доступа * в безопасное место, чтобы вы могли настроить + rclone +
для использования этих учетных данных. Вы также можете нажать кнопку * Скачать .csv *, чтобы сохранить учетные данные на вашем компьютере.
Поиск региона и местоположения Amazon S3 Bucket
Теперь нам нужно найти значения ограничений региона и местоположения для нашего сегмента S3.
Нажмите * Services * в верхнем меню и введите * S3 * в строке поиска. Выберите сервис * S3 *, чтобы перейти к консоли управления S3.
Нам нужно найти название региона группы, которую мы хотим перенести. Регион будет отображаться рядом с именем группы:
изображение: https: //assets.digitalocean.com/articles/s3_migration/aws_region.png [область корзины AWS S3]
Нам нужно найти строку региона и соответствующее ограничение местоположения, связанное с регионом нашего сегмента. Найдите название региона вашего сегмента в this таблице S3-региона из Amazon, чтобы найти подходящие строки и ограничения на местоположение. В нашем примере, наш регион называется «Восток США (N. Вирджиния) », поэтому мы будем использовать` + us-east-1 + `в качестве строки региона, и наше ограничение местоположения будет пустым.
Теперь, когда у нас есть соответствующая информация из нашей учетной записи Amazon, мы можем установить и настроить + rclone +
, используя эту информацию.
Установите rclone на свой локальный компьютер
Теперь вы готовы установить https://rclone.org/ [+ rclone +
] на свой локальный компьютер.
Посетите раздел Downloads веб-сайта проекта, чтобы найти двоичные файлы утилиты, скомпилированные для разных платформ. Загрузите заархивированный двоичный файл, который соответствует операционной системе вашего компьютера, в каталог * Downloads *, чтобы начать.
Как только вы загрузите zip-файл + rclone +
на ваш компьютер, следуйте приведенному ниже разделу, который соответствует вашей платформе.
Linux
Прежде чем мы сможем извлечь архив, нам нужно убедиться, что утилита + unzip +
доступна.
Если вы используете * Ubuntu * или * Debian *, вы можете обновить локальный индекс пакета и установить + unzip +
, набрав:
sudo apt-get update
sudo apt-get 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
Наконец, мы можем создать каталог конфигурации и открыть файл конфигурации, чтобы определить наши учетные данные S3 и Spaces:
mkdir -p ~/.config/rclone
nano ~/.config/rclone/rclone.conf
Это откроет ваш текстовый редактор с новым пустым файлом. Перейдите к разделу по ссылке: [определение учетных записей хранилища объектов], чтобы продолжить.
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
Наконец, мы можем создать каталог конфигурации и открыть файл конфигурации, чтобы определить наши учетные данные S3 и Spaces:
mkdir -p ~/.config/rclone
nano ~/.config/rclone/rclone.conf
Это откроет ваш текстовый редактор с новым пустым файлом. Перейдите к разделу по ссылке: [определение учетных записей хранилища объектов], чтобы продолжить.
Windows
Если вы работаете в Windows, начните с перехода в каталог «Загрузки» в проводнике Windows. Выберите zip-файл + rclone +
и щелкните правой кнопкой мыши. В появившемся контекстном меню нажмите * Извлечь все… *:
изображение: https: //assets.digitalocean.com/articles/s3_migration/extract_archive.png [архив Windows rclone zip]
Следуйте инструкциям, чтобы извлечь файлы из zip-архива.
Утилита + rclone.exe +
должна быть запущена из командной строки. Откройте новое окно * Командная строка * (программа + cmd.exe +
), нажав кнопку Windows в левом нижнем углу, введите * cmd * и выберите * Командная строка *.
Внутри перейдите к пути + rclone +
, который вы извлекли, набрав:
cd "%HOMEPATH%\Downloads\rclone*\rclone*"
Перечислите содержимое каталога, чтобы убедиться, что вы находитесь в правильном месте:
dir
Output10/23/2017 01:02 PM <DIR> .
10/23/2017 01:02 PM <DIR> ..
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 +
.
Затем мы можем создать каталог конфигурации и открыть файл конфигурации, чтобы определить наши учетные данные S3 и Spaces:
mkdir "%HOMEPATH%\.config\rclone"
notepad "%HOMEPATH%\.config\rclone\rclone.conf"
Это откроет ваш текстовый редактор с новым пустым файлом. Продолжите, чтобы узнать, как определить свои учетные записи хранения объектов в файле конфигурации.
Настройте S3 и учетные записи Spaces
Мы можем определить конфигурацию Amazon S3 и DigitalOcean Spaces в новом файле, чтобы + rclone +
мог управлять контентом между двумя нашими учетными записями.
Давайте начнем с определения нашей учетной записи S3. Вставьте следующий раздел в файл конфигурации:
~ / .Config / rclone / rclone.conf
[s3]
type = s3
env_auth = false
access_key_id =
secret_access_key =
region =
location_constraint =
acl = private
Здесь мы определяем новый + rclone +
remote ', называемый
+ s3 + . Мы установили для `+ type +
значение + s3 +
, чтобы + rclone +
знал, как взаимодействовать с ресурсом удаленного хранилища и управлять им. Мы определим учетные данные S3 в самом файле конфигурации, поэтому мы устанавливаем + env_auth +
в + false +
.
Затем мы устанавливаем переменные + access_key_id +
и + secret_access_key +
для нашего ключа доступа S3 и секретного ключа соответственно. Обязательно измените значения на учетные данные S3, связанные с вашей учетной записью.
Мы устанавливаем ограничение по региону и местоположению в соответствии со свойствами нашего сегмента S3, которые мы нашли на Amazon region chart. Наконец, мы устанавливаем политику контроля доступа как «частную», чтобы активы не были общедоступными по умолчанию.
Теперь мы можем определить аналогичный раздел для нашей конфигурации DigitalOcean Spaces. Вставьте следующий раздел в файл конфигурации:
~ / .Config / rclone / rclone.conf
. . .
[spaces]
type = s3
env_auth = false
access_key_id =
secret_access_key =
endpoint =
acl = private
В этом разделе мы определяем новый пульт под названием «пробелы». Опять же, мы устанавливаем + type +
в + s3 +
, поскольку Spaces предлагает S3-совместимый API. Мы отключаем + env_auth +
, чтобы мы могли определять учетные данные Spaces в файле конфигурации.
Затем мы устанавливаем переменные + access_key_id +
и + secret_access_key +
в значения, сгенерированные для нашей учетной записи DigitalOcean. Мы устанавливаем + endpoint +
для соответствующей конечной точки Spaces, которую мы определили ранее. Наконец, мы снова устанавливаем для + acl +
значение + private +
, чтобы защитить наши активы, пока не захотим поделиться ими.
Сохраните и закройте файл, когда вы закончите.
В macOS и Linux обязательно заблокируйте разрешения для файла конфигурации, поскольку наши учетные данные находятся внутри:
chmod 600 ~/.config/rclone/rclone.conf
В Windows разрешения не предоставляются пользователям без прав администратора, если они не предоставлены явно, поэтому нам не нужно настраивать доступ вручную.
Копирование объектов из S3 в пробелы
Теперь, когда наша конфигурация завершена, мы готовы передать наши файлы.
Начнем с проверки + rclone +
настроенных пультов:
rclone listremotes
Outputs3:
spaces:
Оба раздела, которые мы определили, отображаются.
Мы можем просмотреть доступные сегменты S3, попросив + rclone +
перечислить «каталоги», связанные с пультом + s3 +
(обязательно добавьте двоеточие в конец удаленного имени):
rclone lsd s3:
Output -1 2017-10-20 15:32:28 -1 source-of-files
Приведенный выше вывод указывает, что в нашей учетной записи S3 был найден один сегмент, называемый + source-of-files +
.
Если вы уже создали DigitalOcean Space, вы можете повторить процедуру для просмотра ваших Spaces:
rclone lsd spaces:
Output -1 2017-10-25 19:00:35 -1 existing-space
Чтобы просмотреть содержимое корзины S3 или DigitalOcean Space, вы можете использовать команду + tree +
. Передайте удаленное имя, за которым следует двоеточие и имя «каталога», который вы хотите перечислить (сегмент или имя пространства):
rclone tree s3:
Output/
├── README.txt
├── demo_dir
│ ├── demo1
│ └── demo2
└── media
├── Social Rebrand Presentation 032815.ppt
├── TechnicLauncher.jar
├── nda_template.docx
├── textfile.txt
└── the_mother_of_all_demos.mp4
2 directories, 8 files
Когда вы будете готовы, вы можете скопировать файлы из вашей корзины S3 в DigitalOcean Space, набрав:
rclone sync s3: spaces:
Если вы ранее не создавали выбранное вами пространство, + rclone +
попытается создать его для вас с заданным именем. Это не удастся, если предоставленное имя уже используется другой учетной записью или если имя не соответствует требованиям к именованию для пространств DigitalOcean (только строчные буквы, цифры и тире).
Предполагая, что все прошло хорошо, + rclone +
начнет копирование объектов из S3 в Spaces.
Когда передача завершена, вы можете визуально проверить, что объекты были переданы, просмотрев их с помощью подкоманды + tree +
:
rclone tree spaces:
Output/
├── README.txt
├── demo_dir
│ ├── demo1
│ └── demo2
└── media
├── Social Rebrand Presentation 032815.ppt
├── TechnicLauncher.jar
├── nda_template.docx
├── textfile.txt
└── the_mother_of_all_demos.mp4
2 directories, 8 files
Для более надежной проверки используйте подкоманду + check +
для сравнения объектов в обоих удаленных устройствах:
rclone check s3: spaces:
Output2017/10/25 19:51:36 NOTICE: S3 bucket dest-of-files: 0 differences found
2017/10/25 19:51:36 NOTICE: S3 bucket dest-of-files: 2 hashes could not be checked
Это позволит сравнить значения хеш-функции каждого объекта на обоих пультах. Вы можете получить сообщение о том, что некоторые хеши не могут быть сравнены. В этом случае вы можете перезапустить команду с флагом + - size-only +
(который сравнивается только на основе размера файла) или флагом + - download +
(который загружает каждый объект с обоих пультов для локального сравнения) проверить целостность передачи.
Заключение
В этом руководстве мы рассмотрели, как переносить объекты из Amazon S3 в DigitalOcean Spaces. Мы создали учетные данные API для обеих служб, установили и настроили утилиту «+ rclone +» на нашем локальном компьютере, а затем скопировали все объекты из корзины S3 в пространство DigitalOcean.
Клиент + rclone +
может использоваться для многих других задач управления хранилищем объектов, включая загрузку или выгрузку файлов, монтирование блоков в локальной файловой системе, а также создание или удаление дополнительных блоков. Посетите страницу + man +
, чтобы узнать больше о функциональности, предоставляемой этим инструментом.