Skip to content

Rclone

Rclone — инструмент для синхронизации данных в Object Storage и на локальном компьютере. Он может использоваться для резервного копирования, работы со статическими сайтами, а также для переноса данных между разными облачными хранилищами. Существуют версии Rclone для Linux, Windows, MacOS.

Подготовка к работе

  1. Cоздайте сервисный аккаунт.
  2. Назначьте сервисному аккаунту роль storage.bucket.editor или выше.
  3. Создайте HMAC-ключ.
  4. Скопируйте и сохраните обе части HMAC-ключа: Access key и Secret key.

Настройка

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

    bash
    rclone config

    Откроется следующий диалог:

    No remotes found, make a new one?
    n) New remote
    s) Set configuration password
    q) Quit config
  2. Выберите n — добавить новое хранилище. Далее укажите имя, под которым новое хранилище будет сохранено в настройках Rclone. После этого программа настройки предложит вам выбрать хранилище из списка.

  3. Выберите пункт 32 / Any other S3 compatible provider.

  4. В следующем диалоге укажите настройки для работы c Object Storage. Для параметра AWS Access Key ID укажите в качестве значения Access key из HMAC-ключа, а для параметра AWS Secret Access KeySecret key из HMAC-ключа.

    Пример заполнения настроек
    Get AWS credentials from runtime (environment variables or EC2/ECS meta data if no env vars).
    Only applies if access_key_id and secret_access_key is blank.
    Choose a number from below, or type in your own boolean value (true or false).
    Press Enter for the default (false).
     1 / Enter AWS credentials in the next step.
       \ (false)
     2 / Get AWS credentials from the environment (env vars or IAM).
       \ (true)
    env_auth> 1
     
    Option access_key_id.
    AWS Access Key ID.
    Leave blank for anonymous access or runtime credentials.
    Enter a value. Press Enter to leave empty.
    access_key_id> <Access key из НMAC-ключа>
     
    Option secret_access_key.
    AWS Secret Access Key (password).
    Leave blank for anonymous access or runtime credentials.
    Enter a value. Press Enter to leave empty.
    secret_access_key> <Secret key из HMAC-ключа>
     
    Option region.
    Region to connect to.
    Leave blank if you are using an S3 clone and you don't have a region.
    Choose a number from below, or type in your own value.
    Press Enter to leave empty.
       / Use this if unsure.
     1 | Will use v4 signatures and an empty region.
       \ ()
       / Use this only if v4 signatures don't work.
     2 | E.g. pre Jewel/v10 CEPH.
       \ (other-v2-signature)
    region> ru-central1
     
    Option endpoint.
    Endpoint for S3 API.
    Required when using an S3 clone.
    Enter a value. Press Enter to leave empty.
    endpoint> https://storage.mwsapis.ru
     
    Option location_constraint.
    Location constraint - must be set to match the Region.
    Leave blank if not sure. Used when creating buckets only.
    Enter a value. Press Enter to leave empty.
    location_constraint> ru-central1

Примеры команд

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

bash
rclone lsd <имя хранилища>:

Получить список объектов в бакете

bash
rclone ls <имя хранилища>:<имя бакета>

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

bash
rclone copy <путь к локальному файлу> <ключ объекта в хранилище>

Синхронизация Object Storage с локальной директорией

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

bash
rclone sync <путь к локальной директории> <имя хранилища>:<имя бакета>

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

bash
rclone sync <имя хранилища>:<имя бакета> <путь к локальной директории>