Rclone
Rclone — это интерфейс командной строки для работы файлами в Объектном хранилище.
Подключиться к хранилищу через Rclone
Установить клиент
- 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
Настроить клиент
- Swift API
- S3 API
Откройте режим конфигурирования:
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:
name> selectel
Выберите Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH) и введите цифру, соответствующую номеру пункта (в зависимости от версии Rclone меняется порядок хранилищ, в данном примере это пункт 11). Нажмите Enter:
Type of storage to configure.
Choose a number from below, or type in your own value
1 / Amazon Drive
\ "amazon cloud drive"
2 / Amazon S3 (also Dreamhost, Ceph, Minio)
\ "s3"
[...]
11 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
\ "swift"
[...]Storage> 11
Выберите Enter swift credentials in the next step для ввода имени пользователя и пароля:
1 / Enter swift credentials in the next step
\ "false"
2 / Get swift credentials from environment vars. Leave other fields blank if using this.
\ "true"env_auth> 1
Программа запросит имя пользователя и пароль:
User name to log in (OS_USERNAME).
Enter a string value. Press Enter for the default ("").
user> имя_пользователя
API key or password (OS_PASSWORD).
Enter a string value. Press Enter for the default ("").
key> парольПри запросе хоста для доступа через Swift API введите его вручную:
Authentication URL for server (OS_AUTH_URL).
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
1 / Rackspace US
\ "https://auth.api.rackspacecloud.com/v1.0"
2 / Rackspace UK
\ "https://lon.auth.api.rackspacecloud.com/v1.0"
3 / Rackspace v2
\ "https://identity.api.rackspacecloud.com/v2.0"
4 / Memset Memstore UK
\ "https://auth.storage.memset.com/v1.0"
5 / Memset Memstore UK v2
\ "https://auth.storage.memset.com/v2.0"
6 / OVH
\ "https://auth.cloud.ovh.net/v2.0"https://api.selcdn.ru/v3
Все пункты ниже можно оставить пустыми, нажав после каждого Enter.
Еще раз проверьте все настройки:
Remote config
--------------------
[selectel]
env_auth = false
user = your_username
key = your_password
auth = https://api.selcdn.ru/v3
tenant = your_username
auth_version = 3
endpoint_type = public
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d>Если все указано правильно, введите y и нажмите Enter.
Для выхода из диалога настроек введите q и нажмите Enter.
В панели управления перейдите в раздел Объектное хранилище → Пользователи.
В меню (⋮) пользователя выберите Изменить пароль и отметьте чекбокс Использовать эти данные для доступа по протоколу S3.
Откройте режим конфигурирования:
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) и введите цифру, соответствующую номеру пункта (в зависимости от версии Rclone меняется порядок хранилищ, в данном примере это пункт 4). Нажмите 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
Выберите S3 провайдера 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
[...]Выберите false в пункте Enter AWS credentials in the next step:
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> имя_пользователя
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> парольВыберите пул (ru-1):
region> ru-1
Выберите url для доступа по протоколу S3 API:
https://s3.storage.selcloud.ru
Все пункты ниже можно оставить пустыми, нажав после каждого Enter.
Еще раз проверьте все настройки:
Remote config
--------------------
[selectel_s3]
type = s3
provider = Other
env_auth = false
access_key_id = имя_пользователя
secret_access_key = пароль
region = ru-1
endpoint = https://s3.storage.selcloud.ru
--------------------
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 <path> <remote_name>:<container_name>
Укажите:
<path>
—префикс объекта;<remote_name>
—имя подключения, указанное при конфигурировании Rclone;<container_name>
—имя целевого контейнера.
Удалить объект
Удалите объект:
rclone deletefile remote:<path>
Укажите
<path>
— префикс объекта, который нужно удалить.