Поиск по сайту:

Как копировать данные между AWS и Azure Buckets с помощью rclone


Данные — один из самых ценных товаров в мире, и нетрудно понять, почему. От маркетинга до геномики анализ больших наборов данных приводит к моделям прогнозирования, которые приводят к благоприятным результатам для бизнеса. Чем больше данных вы используете, тем лучше эти модели, а значит, тем лучшие результаты они могут дать. Конечно, это означает, что перемещение данных из одного места в другое является важным навыком для любого инженера, но это не всегда так просто, как кажется.

Например, если вы используете хранилище корзин AWS S3, то перемещение данных в другую корзину S3 выполняется одной командой CLI, aws s3 cp s3://SourceBucket/* s3://DestinationBucket/. Для перемещения тех же файлов к другому облачному провайдеру, такому как Microsoft Azure или Google Cloud Platform, требуется совершенно другой инструмент.

К концу этого руководства вы сможете синхронизировать файлы из корзины AWS S3 в контейнер хранилища BLOB-объектов Azure с помощью rclone, инструмента синхронизации данных с открытым исходным кодом, который работает с большинством облачных провайдеров и локальных файловых систем.

Предпосылки

Чтобы следовать дальше, вам понадобится следующее:

  • Корзина AWS S3
  • Контейнер хранилища BLOB-объектов Azure
  • Ключи доступа AWS и ключи доступа к учетной записи хранения Azure
  • Компьютер с любой современной операционной системой.
    • Скриншоты из Windows 10 с WSL.

    Как настроить rclone

    Установка rclone отличается для каждой операционной системы, но после ее установки инструкции одинаковы: запустите rclone config.

    Запуск команды config предложит вам связать учетные записи ваших облачных провайдеров с rclone. Термин rclone для этого — remote. При запуске команды config введите n, чтобы создать новый пульт. Вам понадобится один как для AWS, так и для Azure, но есть и несколько других поставщиков на выбор.

    Лазурный

    После выбора хранилища BLOB-объектов Azure вам потребуется:

    • Имя пульта. (В этой демонстрации это «Azure».)
    • Имя учетной записи хранения
    • Один из ключей доступа к учетной записи хранения.

    Вам будет предложено ввести URL-адрес подписи общего доступа, и хотя его можно настроить, в этой демонстрации используется только ключ доступа. После ввода значения по умолчанию для остальных значений путем нажатия Enter в ходе остальной части настройки вы сможете начать использовать пульт дистанционного управления.

    Чтобы получить список пультов, настроенных в вашей системе, введите rclone listremotes, который покажет доступные пульты. Вы также можете получить список всех контейнеров хранилища больших двоичных объектов, запустив rclone lsd :. Не забудьте включить : в конце пульта при выполнении этих команд, потому что именно так rclone определяет, хотите ли вы использовать пульт или нет. Вы можете запустить rclone --help в любое время, чтобы получить список доступных команд.

    Использование команд ls и cat с удаленным rclone.

    АВС S3

    Настройка удаленного устройства для корзины S3 очень похожа на настройку контейнера хранилища BLOB-объектов Azure, но с некоторыми небольшими отличиями. Поскольку существуют другие поставщики облачных хранилищ, которые rclone считает S3-совместимыми, вы также можете получить несколько дополнительных запросов при запуске rclone config. Вам понадобиться:

    • Имя пульта. (В этой демонстрации это «AWS».)
    • Ключ доступа AWS и соответствующий секретный ключ доступа.
    • Регион AWS, в котором находится сегмент

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

    Если пользователь, которому принадлежат ключи доступа, имеет доступ к корзине, у вас будет доступ к ней с помощью тех же команд, которые вы использовали для доступа к удаленному Azure.

    Вы можете подтвердить тип удаленного устройства, добавив флаг --long в команду rclone listremotes.

    Запуск rclone

    Теперь, когда пульты настроены, вы можете передавать файлы, создавать новые корзины или манипулировать файлами любым способом, который вам нужен, используя стандартный набор команд. Вместо того, чтобы полагаться на знание того, как работать с интерфейсом командной строки AWS S3 или Azure PowerShell, вы можете обмениваться данными между двумя сегментами хранилища с помощью rclone.

    Некоторые общие полезные команды для начала:

    • rclone tree : — отображает содержимое корзины в формате дерева. Добавьте флаг -C, чтобы добавить цвет к выходным данным.
    • rclone size : – отображает количество файлов в сегменте и их общий размер.
    • rclone sync — делает цель соответствующей исходной, но только изменяет цель. Источник и цель могут быть либо локальными путями к файлам, либо rclone удаленными путями. Добавьте флаг -P для интерактивного просмотра хода выполнения.

    В следующем примере корзина AWS S3 синхронизируется с удаленным Azure, который удаляет существующий файл в Azure, а затем копирует данные из S3. Если вам нужно сохранить файлы в целевой папке, используйте команду rclone copyto.

    Краткое содержание

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