Rclone
Rclone — это интерфейс командной строки для работы с объектами в объектном хранилище.
Настроить Rclone
1. Настроить доступ
Настроить доступ может пользователь с ролью Владелец аккаунта или Администратор пользователей.
- Создайте сервисного пользователя с ролью с доступом в объектное хранилище. Если вы используете пользователя с ролью Пользователь объектного хранилища, в контейнере должна быть настроена политика доступа.
- Выдайте пользователю S3-ключ.
2. Установить клиент
Windows
Linux/macOS
-
На сайте Rclone скачайте дистрибутив для Windows.
-
Распакуйте архив с дистрибутивом.
-
Откройте командную строку.
-
Перейдите в директорию с дистрибутивом:
cd <path>
Укажите
<path>
— путь к директории с дистрибутивом.
-
Откройте терминал.
-
Установите Rclone любым способом — например, готовым скриптом:
sudo -v ; curl https://rclone.org/install.sh | sudo bash
Подробнее о всех способах установки на сайте Rclone.
3. Создать конфигурацию Rclone
-
Откройте режим конфигурирования:
rclone config
В консоли появится диалог:
No remotes found, make a new one?
n) New remote
s) Set configuration password
q) Quit config -
Создайте новую конфигурацию:
n/s/q> n
-
Нажмите Enter.
-
Введите имя подключения к удаленному хранилищу (например,
selectel_s3
):name> selectel_s3
-
Нажмите Enter.
-
Введите тип хранилища, который указан после строки
Amazon S3 Compliant Storage Provider (AWS, Alibaba, Ceph, Digital Ocean, Dreamhost, IBM COS, Minio, etc)
:Storage> s3
-
Нажмите Enter.
-
Введите тип провайдера, который указан после строки
Any other S3 compatible provider
:provider> Other
-
Нажмите Enter.
-
Выберите способ получения авторизационных данных, который указан после строки
Enter AWS credentials in the next step
:env_auth> false
-
Введите
AWS Access Key ID
:access_key_id> <access_key>
Укажите
<access_key>
— значение поля Access key из S3-ключа. -
Введите
AWS Secret Access Key (password)
:secret_access_key> <secret_key>
Укажите
<secret_key>
— значение поля Secret key из S3-ключа. -
Введите пул, в котором находится объектное хранилище (например,
ru-1
):region> <pool>
-
Введите URL для доступа по протоколу S3 API:
endpoint> <s3_domain>
Укажите
<s3_domain>
— домен S3 API, зависит от пула, в котором находится объектное хранилище. -
Параметр
location_constraint
оставьте пустым. -
Нажмите Enter.
-
Параметр
acl
оставьте пустым. -
Нажмите Enter.
-
Параметр
Edit advanced config
оставьте пустым или введитеn
. -
Нажмите Enter.
-
Проверьте конфигурацию:
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 -
Подтвердите создание конфигурации:
y/e/d> y
-
Нажмите Enter.
-
Выйдите из диалога настроек:
e/n/d/r/c/s/q> q
-
Нажмите 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>
— имя объекта, который нужно удалить.