Rclone
Rclone — инструмент для синхронизации данных в Object Storage и на локальном компьютере. Он может использоваться для резервного копирования, работы со статическими сайтами, а также для переноса данных между разными облачными хранилищами. Существуют версии Rclone для Linux, Windows, MacOS.
Подготовка к работе
- Cоздайте сервисный аккаунт.
- Назначьте сервисному аккаунту роль
storage.bucket.editorили выше. - Создайте HMAC-ключ.
- Скопируйте и сохраните обе части HMAC-ключа:
Access keyиSecret key.
Настройка
Выполните команду:
bashrclone configОткроется следующий диалог:
No remotes found, make a new one? n) New remote s) Set configuration password q) Quit configВыберите
n— добавить новое хранилище. Далее укажите имя, под которым новое хранилище будет сохранено в настройках Rclone. После этого программа настройки предложит вам выбрать хранилище из списка.Выберите пункт
32 / Any other S3 compatible provider.В следующем диалоге укажите настройки для работы c Object Storage. Для параметра
AWS Access Key IDукажите в качестве значенияAccess keyиз HMAC-ключа, а для параметраAWS Secret Access Key—Secret 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
Примеры команд
Просмотреть список бакетов
rclone lsd <имя хранилища>:Получить список объектов в бакете
rclone ls <имя хранилища>:<имя бакета>Загрузить объект в бакет
rclone copy <путь к локальному файлу> <ключ объекта в хранилище>Синхронизация Object Storage с локальной директорией
Если вы добавляли в локальную директорию файлы или удаляли их из нее, и вам нужно внести такие же изменения в бакете в Object Storage, выполните команду:
rclone sync <путь к локальной директории> <имя хранилища>:<имя бакета>Если вы добавили новые объекты в бакет или удалили их из него, и вам нужно внести такие же изменения в локальную директорию, выполните команду:
rclone sync <имя хранилища>:<имя бакета> <путь к локальной директории>