Перейти к основному содержимому
Rclone
Последнее изменение:

Rclone

Rclone — это интерфейс командной строки для работы с объектами в объектном хранилище.

Через Rclone можно работать с S3 API.

Настроить Rclone

  1. Настройте доступ.
  2. Установите клиент.
  3. Создайте конфигурацию Rclone.

1. Настроить доступ

Настроить доступ может пользователь с ролью Владелец аккаунта или Администратор пользователей.

  1. Создайте сервисного пользователя с ролью с доступом в объектное хранилище, подробнее в подразделе Доступ в рамках ролевой модели.
  2. Выдайте пользователю S3-ключ.

2. Установить клиент

  1. На сайте Rclone скачайте дистрибутив для Windows.

  2. Распакуйте архив с дистрибутивом.

  3. Откройте командную строку.

  4. Перейдите в директорию с дистрибутивом:

    cd <path>

    Укажите <path> — путь к директории с дистрибутивом.

3. Создать конфигурацию Rclone

  1. Откройте режим конфигурирования:

    rclone config

    В консоли появится диалог:

    No remotes found, make a new one?
    n) New remote
    s) Set configuration password
    q) Quit config
  2. Создайте новую конфигурацию:

    n/s/q> n
  3. Нажмите Enter.

  4. Введите имя подключения к удаленному хранилищу (например, selectel_s3):

    name> selectel_s3
  5. Нажмите Enter.

  6. Введите тип хранилища, который указан после строки Amazon S3 Compliant Storage Provider (AWS, Alibaba, Ceph, Digital Ocean, Dreamhost, IBM COS, Minio, etc):

    Storage> s3
  7. Нажмите Enter.

  8. Введите тип провайдера, который указан после строки Any other S3 compatible provider:

    provider> other
  9. Нажмите Enter.

  10. Выберите способ получения авторизационных данных, который указан после строки Enter AWS credentials in the next step:

    env_auth> false
  11. Введите AWS Access Key ID:

    access_key_id> <access_key>

    Укажите <access_key> — значение поля Access key из S3-ключа.

  12. Введите AWS Secret Access Key (password):

    secret_access_key> <secret_key>

    Укажите <secret_key> — значение поля Secret key из S3-ключа.

  13. Введите пул, в котором размещается объектное хранилище:

    region> ru-1
  14. Введите URL для доступа по протоколу S3 API:

    endpoint> s3.ru-1.storage.selcloud.ru
  15. Параметр location_constraint оставьте пустым.

  16. Нажмите Enter.

  17. Параметр acl оставьте пустым.

  18. Нажмите Enter.

  19. Параметр Edit advanced config оставьте пустым или введите n.

  20. Нажмите Enter.

  21. Проверьте конфигурацию:

    Remote config
    --------------------
    [selectel_s3]
    type = s3
    provider = Other
    env_auth = false
    access_key_id = <access_key>
    secret_access_key = <secret_key>
    region = ru-1
    endpoint = s3.ru-1.storage.selcloud.ru
    --------------------
    y) Yes this is OK
    e) Edit this remote
    d) Delete this remote
  22. Подтвердите создание конфигурации:

    y/e/d> y
  23. Нажмите Enter.

  24. Выйдите из диалога настроек:

    e/n/d/r/c/s/q> q
  25. Нажмите Enter.

Работа с Rclone

Формат команд

Общий вид команд:

<command> <remote_name>:<container_name>/<object_name>

Укажите:

  • <command> — команду Rclone вида rclone <subcommand>. Посмотреть все команды можно на сайте Rclone или в выводе команды rclone --help
  • <remote_name> — имя подключения, указанное при настройке Rclone;
  • <container_name> — имя контейнера;
  • <object_name> — опционально: имя объекта.

Создать контейнер

Через S3 API можно создать только приватный контейнер.

Создайте контейнер:

rclone mkdir <remote_name>:<container_name>

Укажите:

  • <remote_name> — имя подключения, указанное при настройке Rclone;
  • <container_name> — имя нового контейнера. Учитывайте правила именования контейнеров, подробнее в инструкции Bucket naming rules документации AWS.

Посмотреть список объектов

Посмотрите список объектов:

rclone ls <remote_name>:<container_name>/<prefix>

Укажите:

  • <remote_name> — имя подключения, указанное при настройке Rclone;
  • <container_name> — имя контейнера;
  • <prefix> — опционально: префикс, объекты с которым нужно вывести.

Загрузить объект

При выполнении операций копирования и синхронизации Rclone проверяет все объекты по дате и времени изменения или md5-сумме. Из директории-источника в директорию назначения передаются объекты, которые были изменены.

Загрузите объект из локальной директории:

rclone copy <path> <remote_name>:<container_name>/<object_name>

Укажите:

  • <path> — путь до объекта в локальной директории;
  • <remote_name> — имя подключения, указанное при настройке Rclone;
  • <container_name> — имя контейнера;
  • <object_name> — опционально: имя, с которым будет загружен объект. Если его не указать, будет использовано имя файла.

Удалить объект

Удалите объект:

rclone deletefile <remote_name>:<container_name>/<object_name>

Укажите:

  • <remote_name> — имя подключения, указанное при настройке Rclone;
  • <container_name> — имя контейнера;
  • <object_name> — имя объекта, который нужно удалить.