Rclone
Rclone — это интерфейс командной строки для работы с объектами в объектном хранилище.
Через Rclone можно работать с S3 API.
Установить клиент
- Windows
- Linux
- macOS
- Скачайте дистрибутив Rclone для Windows с официального сайта.
- Запустите приложение и следуйте инструкциям.
Введите в терминале:
curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip
unzip rclone-current-linux-amd64.zip
cd rclone-<version>-linux-amd64/
sudo cp rclone /usr/sbin/
sudo chown root:root /usr/sbin/rclone
sudo chmod 755 /usr/sbin/rclone
sudo mkdir -p /usr/local/share/man/man1
sudo cp rclone.1 /usr/local/share/man/man1/
sudo mandb
Укажите <version>
— версию Rclone из дистрибутива (например, v1.58.1
).
Введите в терминале:
cd && curl -O https://downloads.rclone.org/rclone-current-osx-amd64.zip
unzip -a rclone-current-osx-amd64.zip && cd rclone-*-osx-amd64
sudo mkdir -p /usr/local/bin
sudo mv rclone /usr/local/bin/
cd .. && rm -rf rclone-*-osx-amd64 rclone-current-osx-amd64.zip
Подключиться к хранилищу через Rclone
Откройте режим конфигурирования:
rclone config
В консоли появится диалог:
No remotes found - make a new one
n) New remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
n/r/c/s/q>Введите
n
для создания новой конфигурации и нажмите Enter.Укажите имя подключения к удаленному хранилищу, например,
selectel_s3
:name> selectel_s3
Введите число, соответствующее строке
Amazon S3 Compliant Storage Provider (AWS, Alibaba, Ceph, Digital Ocean, Dreamhost, IBM COS, Minio, etc)
(в примере —4
, в зависимости от версии Rclone меняется порядок хранилищ) и нажмите Enter.Type of storage to configure.
Choose a number from below, or type in your own value
1 / 1Fichier
\ "fichier"
2 / Alias for an existing remote
\ "alias"
3 / Amazon Drive
\ "amazon cloud drive"
4 / Amazon S3 Compliant Storage Provider (AWS, Alibaba, Ceph, Digital Ocean, Dreamhost, IBM COS, Minio, etc)
\ "s3"
[...]Storage> 4
Введите число, соответвующее строке
Any other S3 compatible provider
(в данном примере это10
), и нажмите Enter.Choose your S3 provider.
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
1 / Amazon Web Services (AWS) S3
\ "AWS"
2 / Alibaba Cloud Object Storage System (OSS) formerly Aliyun
\ "Alibaba"
3 / Ceph Object Storage
\ "Ceph"
[...]
10 / Any other S3 compatible provider
[...]В строке
Enter AWS credentials in the next step
выберитеfalse
: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.
Enter a boolean value (true or false). Press Enter for the default ("false").
Choose a number from below, or type in your own value
1 / Enter AWS credentials in the next step
\ "false"
2 / Get AWS credentials from the environment (env vars or IAM)
\ "true"Введите ключи:
AWS Access Key ID.
Leave blank for anonymous access or runtime credentials.
Enter a string value. Press Enter for the default ("").
access_key_id> <access_key>
AWS Secret Access Key (password)
Leave blank for anonymous access or runtime credentials.
Enter a string value. Press Enter for the default ("").
secret_access_key> <secret_key>Укажите:
<access_key>
— значение поля Access key из S3-ключа;<secret_key>
— значение поля Secret key из S3-ключа.
Выберите пул, в котором размещается объектное хранилище:
region> ru-1
Выберите URL для доступа по протоколу S3 API:
s3.ru-1.storage.selcloud.ru
— при любой адресации;<container-name>.s3.ru-1.storage.selcloud.ru
— при использовании Virtual-Hosted адресации.
Все пункты ниже можно оставить пустыми, нажав после каждого Enter.
Проверьте все настройки:
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 = <url>
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d>Если все указано правильно, введите y и нажмите Enter.
Для выхода из диалога настроек введите q и нажмите Enter.
Работа с Rclone
Посмотреть все команды можно на сайте Rclone.
Создать контейнер
Создайте контейнер:
rclone mkdir remote:<container_name>
Укажите
<container_name>
— имя нового контейнера.
Посмотреть список объектов
Посмотрите список объектов:
rclone ls remote:<path>
Укажите
<path>
— префикс, по которому нужно вывести список объектов.
Загрузить объект
При выполнении операций копирования и синхронизации Rclone проверяет все объекты по дате и времени изменения или md5-сумме. Из директории-источника в директорию назначения передаются объекты, которые были изменены.
Загрузите объект:
rclone copy <object_name> <remote_name>:<container_name>
Укажите:
<object_name>
— имя объекта;<remote_name>
— имя подключения, указанное при конфигурировании Rclone;<container_name>
— имя целевого контейнера.
Удалить объект
Удалите объект:
rclone deletefile remote:<object_name>
Укажите
<object_name>
— префикс объекта, который нужно удалить.