Подключение через rclone

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

Утилиту rclone можно установить на сервер с ОС Linux, macOS, Windows и т.д. Полный список ОС, дистрибутивы и инструкции по их установке см. на официальном сайте rclone.

Синхронизация данных

Чтобы синхронизировать данные между бакетами:

  1. Установите утилиту rclone.

  2. Настройте подключение к облачным хранилищам, между которыми будут переноситься данные.
    При необходимости конфигурацию подключения можно изменить позже.

  3. Скопируйте данные между бакетами.

Управление бакетами и объектами

Чтобы создать бакет, загрузить/удалить объекты и т.д.:

  1. Установите утилиту rclone.

  2. Настройте подключение к облачному хранилищу.
    При необходимости конфигурацию подключения можно изменить позже.

  3. Выполните нужные команды в rclone.

Установка rclone

Дистрибутивы и инструкцию по их установке см. в официальной документации rclone. 

  1. При необходимости закажите сервер на базе OpenStack c ОС Ubuntu и публичным IP-адресом.

  2. Подключитесь к серверу.

  3. Введите команду bash и нажмите Enter для запуска оболочки bash.

  4. Обновите ОС:

    1. Обновите индекс пакетов, выполнив команду:

    2. Обновите пакеты ПО до последней версии, выполнив команду:

  5. Загрузите и установите последнюю версию утилиты rclone (.deb-пакет):

    1. Скачайте и сохраните файл, выполнив команду:

      Например:

    2. Установите утилиту rclone, выполнив команду:

      Например: 

  1. При необходимости закажите виртуальную машину на базе VMware c ОС Ubuntu.

  2. Чтобы виртуальная машина могла работать в сети Интернет:

    1. Если в виртуальном дата-центре не создан маршрутизатор, создайте его в виртуальном дата-центре или в виртуальном дата-центре с GPU.

    2. Настройте маршрутизатор для подключения виртуальной машины к Интернет.

  3. Подключитесь к виртуальной машине.

  4. Введите команду bash и нажмите Enter для запуска оболочки bash.

  5. Обновите ОС:

    1. Обновите индекс пакетов, выполнив команду:

    2. Обновите пакеты ПО до последней версии, выполнив команду:

  6. Загрузите и установите последнюю версию утилиты rclone (.deb-пакет):

    1. Скачайте и сохраните файл, выполнив команду:

      Например:

    2. Установите утилиту rclone, выполнив команду:

      Например: 

Настройка подключения к облачному хранилищу

Чтобы настроить подключение:

  1. Получите Access key и Secret. Подробнее см. раздел Создание статических ключей для Объектного хранилища S3.

  2. На сервере с установленной утилитой rclone выполните команду:

    Появится диалог с возможными действиями:

  3. Введите n и нажмите Enter:

  4. Введите имя нового подключения (например, T1S3) и нажмите Enter:

  5. В качестве типа хранилища введите значение s3 и нажмите Enter:

  6. В качестве провайдера введите Other и нажмите Enter:

  7. Введите false, чтобы rclone использовал Access key и Secret, введённые на следующих шагах. Нажмите Enter:

  8. Введите <access key> и нажмите Enter:

    где <access key> — значение Access key, полученное при создании статических ключей.

  9. Введите <secret> и нажмите Enter:

    где <secret> — значение Secret, полученное при создании статических ключей.

  10. Оставьте поле пустым и нажмите Enter:

  11. Введите <URL endpoint> и нажмите Enter:

    где <URL endpoint> — адрес Endpoint Объектного хранилища S3:

    • https://api.s3.dp.t1.cloud — для Объектного хранилища S3 AZ0;

    • https://api.s3.az1.t1.cloud — для Объектного хранилища S3 AZ1;

    • https://api4.s3.mz1.t1.cloud — для Объектного хранилища S3 MZ1.

  12. Оставьте поле пустым и нажмите Enter:

    Поле определяет ЦОД, в котором будут создаваться бакеты. Оставьте его пустым, т.к. ЦОД был выбран при подключении Объектного хранилища S3.
  13. Введите значение, определяющее права доступа к бакетам и объектам, и нажмите Enter:

    • private — полный доступ к бакетам и объектам только у владельцев бакетов;

    • public-read:

      • у владельцев бакетов — полный доступ к бакетам и объектам;

      • у всех пользователей — доступ на чтение к бакетам и объектам;

    • public-read-write:

      • у владельцев бакетов — полный доступ к бакетам и объектам;

      • у всех пользователей доступ на чтение и запись к бакетам и объектам;

    • authenticated-read:

      • у владельцев бакетов — полный доступ к бакетам и объектам;

      • у авторизованных пользователей — доступ на чтение к бакетам и объектам;
    • bucket-owner-read:
      • у владельцев бакетов — полный доступ к бакетам, доступ на чтение к объектам других пользователей;
      • у всех пользователей полный доступ к объектам, которые они загрузили в бакеты;
    • bucket-owner-full-control:
  14. Оставьте поле пустым и нажмите Enter:

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

  15. Оставьте поле пустым и нажмите Enter:

    Поле определяет класс хранилища, используемый при сохранении объектов в S3. Оставьте его пустым, т.к. классы хранилищ не используются.
    После ввода значений появится диалог о дополнительных настройках подключения:

  16. Введите n и нажмите Enter:
    Появится диалог с ранее заполненными параметрами:
  17. Проверьте данные, введите y и нажмите Enter:

  18. Для выхода введите q и нажмите Enter.

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

Копирование данных между бакетами

Важно

  1. Запускайте команды в сессии экранного менеджера screen/tmux, чтобы избежать завершения работы утилиты rclone во время копирования данных.

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

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

где:

  • <имя_подключения_источника> — имя подключения, из которого нужно скопировать данные. Например, T1S3;

  • <имя_бакета1> — название бакета, из которого нужно скопировать данные;

  • <имя_подключения_приёмника> — имя подключения, в которое нужно скопировать данные. Например, T1S31;

  • <имя_бакета2> — название бакета, в который нужно скопировать данные.

Примечание

При копировании данных может возникать ошибка, если бакет, в который нужно скопировать данные, ещё не создан:

ERROR: XXXXXXX: Failed to copy: InvalidLocationConstraint: The specified Location_constraint is not valid

В этом случае воспользуйтесь одним из вариантов:

Синтаксис команд rclone

Сервисный аккаунт может выполнять действия с бакетами и объектами, к которым у него есть доступ.

В командной строке rclone можно выполнить следующие команды:

где <имя_подключения> — имя подключения, в котором нужно посмотреть список бакетов. Например, T1S3.

где:

  • <имя_подключения> — имя подключения, в котором нужно посмотреть список объектов бакета. Например, T1S3;

  • <имя_бакета> — название бакета.

где:

  • <имя_подключения> — имя подключения, в котором нужно посмотреть информацию. Например, T1S3;

  • <имя_бакета> название бакета.

где <имя_подключения> — имя подключения, в котором нужно посмотреть информацию. Например, T1S3.

где:

  • <имя_подключения> — имя подключения, в котором нужно создать бакет. Например, T1S3;

  • <имя_бакета> — название создаваемого бакета.

где:

  • <путь_к_файлу> — локальный путь к файлу на сервере. Например, /files/photos/photo.jpg;

  • <имя_подключения> — имя подключения, в котором нужно загрузить объект в бакет. Например, T1S3;

  • <имя_бакета> название бакета, в который загружается объект. 

Если объект нужно поместить в конкретную папку бакета, выполните команду:

где:

  • <имя_подключения> — имя подключения, из которого нужно скачать объект. Например, T1S3;

  • <имя_бакета> название бакета, в котором находится объект для скачивания;

  • <имя_объекта> название и расширение скачиваемого объекта, например photo.jpg;

  • <путь_к_файлу> локальный путь, по которому объект сохранится на сервере.

Если нужно скачать и переименовать объект, выполните команду:

где:

  • <имя_подключения> — имя подключения, из которого нужно скачать объект. Например, T1S3;

  • <имя_бакета> название бакета, в котором находится объект для скачивания;

  • <имя_объекта> название и расширение скачиваемого объекта, например photo.jpg;

  • <путь_к_файлу> локальный путь, по которому объект сохранится на сервере;

  • <имя_файла> — новое название объекта и его расширение. Например, myphoto.jpg.

где:

  • <имя_подключения> — имя подключения, в котором нужно удалить объект. Например, T1S3;

  • <имя_бакета> название бакета, из которого нужно удалить объект;

  • <путь_к_объекту> — путь к объекту с указанием его названия и расширения. Например, folder/file.txt.

Например:

где:

  • <имя_подключения> — имя подключения, в котором нужно удалить все объекты в бакете. Например, T1S3;

  • <имя_бакета> название бакета, в котором нужно удалить все объекты. Бакет не удаляется.

где:

  • <имя_подключения> — имя подключения, в котором нужно удалить бакет. Например, T1S3;

  • <имя_бакета> название бакета, который нужно удалить.

При удалении бакета удаляются и все его объекты.

Полный список команд см. в официальной документации rclone.

Изменение конфигурации существующего подключения

Чтобы изменить параметры уже созданного подключения:

  1. Выполните команду:

    Появится диалог с возможными действиями:

  2. Введите e и нажмите Enter:

    Появится список подключений:

  3. Введите номер или имя подключения, конфигурацию которого нужно изменить, и нажмите Enter:

  4. Настройте подключение с новыми значениями, начиная с пункта 5 раздела Настройка подключения к облачному хранилищу.