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

Rclone

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

Настроить Rclone

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

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

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

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

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

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

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

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

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

    cd <path>

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

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

  1. Убедитесь, что в контейнере включена Virtual-Hosted адресация.

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

    rclone config

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

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

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

    name> selectel_s3
  5. Введите тип хранилища, который указан после строки Amazon S3 Compliant Storage Providers including ..., Selectel, ...:

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

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

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

    access_key_id> <access_key>

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

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

    secret_access_key> <secret_key>

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

  10. Введите пул, в котором находится объектное хранилище (например, ru-1):

    region> <pool>
  11. Введите URL для доступа по протоколу S3 API:

    endpoint> <s3_domain>

    Укажите <s3_domain> — домен S3 API, зависит от пула, в котором находится объектное хранилище.

  12. Параметр location_constraint оставьте пустым.

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

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

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

    Remote config
    --------------------
    [selectel_s3]
    type = s3
    provider = Other
    env_auth = false
    access_key_id = <access_key>
    secret_access_key = <secret_key>
    region = <pool>
    endpoint = <s3_domain>
    --------------------
    y) Yes this is OK
    e) Edit this remote
    d) Delete this remote

    Если конфигурация верная, нажмите Enter. Если нет, введите y и отредактируйте конфигурацию.

  16. Подтвердите создание конфигурации:

    y/e/d> y
  17. Выйдите из диалога настроек:

    e/n/d/r/c/s/q> q

Работа с 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> — имя объекта, который нужно удалить.