Инструкция по настройке и использованию программы Rclone на Linux и Windows для работы с облачным хранилищем.
Что это такое?
Rclone - это программа командной строки для синхронизации файлов и каталогов с локальным компьютером и облачным хранилищем.
Установка Rclone на Linux
Для установки программы на машину с операционной системой Linux с помощью пакетного менеджера установите архиватор unzip:
apt-get update
apt-get install unzip
Скачайте и разархивируйте программу, для этого в командной строке выполните следующие команды:
curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip
unzip rclone-current-linux-amd64.zip
cd rclone-*-linux-amd64
Настройте пути и права:
sudo cp rclone /usr/bin/
sudo chown root:root /usr/bin/rclone
sudo chmod 755 /usr/bin/rclone
Установите справочную информацию:
sudo mkdir -p /usr/local/share/man/man1
sudo cp rclone.1 /usr/local/share/man/man1/
sudo mandb
Установка на Linux закончена.
Установка на Windows
Для установки программы на операционную систему Windows скачайте архив с нужной версией с сайта разработчика.
Разархивируйте скачанный файл и переместите каталог в удобное для вас место. Для доступа к утилите используйте командную строку Windows.
Создание подключения к хранилищу
Важно: использование программы rclone для нашего хранилища возможно только по протоколу swift.
Для создания подключения выполните команду:
rclone config
Примечание: для Windows выполните в каталоге со скачанной программой.
Перед вами появится следующий диалог:
root@Ubuntu1604x64:~# rclone config Current remotes: Name Type ==== ==== e) Edit existing remote n) New remote d) Delete remote r) Rename remote c) Copy remote s) Set configuration password q) Quit config
Выберете опцию n для создания нового соединения:
e/n/d/r/c/s/q> n
Введите удобное для вас имя:
name> swift-1
Далее выберете протокол swift для подключения:
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" 3 / Backblaze B2 \ "b2" 4 / Box \ "box" 5 / Dropbox \ "dropbox" 6 / Encrypt/Decrypt a remote \ "crypt" 7 / FTP Connection \ "ftp" 8 / Google Cloud Storage (this is not Google Drive) \ "google cloud storage" 9 / Google Drive \ "drive" 10 / Hubic \ "hubic" 11 / Local Disk \ "local" 12 / Microsoft Azure Blob Storage \ "azureblob" 13 / Microsoft OneDrive \ "onedrive" 14 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH) \ "swift" 15 / QingClound Object Storage \ "qingstor" 16 / SSH/SFTP Connection \ "sftp" 17 / Yandex Disk \ "yandex" 18 / http Connection \ "http"
Storage> 14
Далее укажите ручной ввод данных для входа:
Get swift credentials from environment variables in standard OpenStack form. Choose a number from below, or type in your own value 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
Введите AccessKey из панели управления:
User name to log in.
user> XX_admin
Введите Password из панели управления:
API key or password.
key> XXXXXXXX
Далее необходимо указать наш URL для аутентификации:
Authentication URL for server. 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"
auth> https://1cloud.store/v3
В качестве домена пользователя укажите Default:
User domain - optional (v3 auth)
domain> Default
Далее введите TenantId из панели управления:
Tenant name - optional for v1 auth, required otherwise
tenant> XX
В качестве домена укажите Default:
Tenant domain - optional (v3 auth)
tenant_domain> Default
Имя региона, Storage URL и версию аутентификации оставьте пустыми:
Region name - optional
region>
Storage URL - optional
storage_url>
AuthVersion - optional - set to (1,2,3) if your auth URL has no version
auth_version>
Укажите публичный тип точки:
Endpoint type to choose from the service catalogue Choose a number from below, or type in your own value 1 / Public (default, choose this if not sure) \ "public" 2 / Internal (use internal service net) \ "internal" 3 / Admin \ "admin"
endpoint_type> 1
Проверьте настройки:
Remote config -------------------- [swift-1] env_auth = false user = XX_admin key = XXXXXXX auth = https://1cloud.store/v3 domain = ВDefault tenant = 11 tenant_domain = Default region = storage_url = auth_version = endpoint_type = public --------------------
Если все правильно выберете y, для внесения изменений e:
y) Yes this is OK e) Edit this remote d) Delete this remote
y/e/d> y
Current remotes: Name Type ==== ==== swift-1 swift
Выйдете из настроек подключения с помощью опции q:
e) Edit existing remote n) New remote d) Delete remote r) Rename remote c) Copy remote s) Set configuration password q) Quit config
e/n/d/r/c/s/q> q
Операции с Rclone
1. Вывод списка контейнеров в облачном хранилище:
rclone lsd <имя_подключения>:
Например: rclone lsd swift-1:
181248 2017-12-18 16:24:16 1 new-bucket
0 2017-12-18 16:24:16 0 new-bucket-c405005b
2. Создание нового контейнера:
rclone mkdir <имя_подключения>:<имя_контейнера>
Например: rclone mkdir swift-1:test-bucket
3. Просмотр файлов в контейнере:
rclone ls <имя_подключения>:<имя_контейнера>
Например: rclone ls swift-1:new-bucket
181248 1.doc
4. Для создания копии файлов локальной машины в хранилище:
rclone copy <путь_до_файла> <имя_подключения>:<имя_контейнера>
Например:Создание копии целого каталога:
rclone copy ./swift3 swift-1:test-bucket
Создание копии файла:
rclone copy README.txt swift-1:test-bucket
5. Синхронизация файлов на локальной машине с файлами в хранилище
rclone sync <имя_подключения>:<имя_контейнера> <путь_до_каталога>
Например: rclone sync documents swift:new-bucket
6. Синхронизация файлов в хранилище с файлами на локальной машине
rclone <имя_подключения>:<имя_контейнера> sync <путь_до_каталога>
Например: rclone sync swift:new-bucket documents
Более подробный список команд можно найти в официальной документации.