Rclone — утилита командной строки для синхронизации файлов и каталогов между локальной машиной и облачным хранилищем.
Дистрибутивы программы для разных архитектур и ОС можно скачать с сайта разработчика. Инструкции по установке также есть на официальном сайте.
Для Windows достаточно скачать и запустить rclone.exe
через командную строку.
Для настройки rclone
для работы с нашим объектным хранилищем S3 необходимо создать в каталоге .config/rclone
в корне домашней директории файл rclone.conf
со следующим содержимым:
[timeweb-cloud]
type = s3
provider = Other
env_auth = false
access_key_id = <Access Key>
secret_access_key = <Secret Access Key>
endpoint = https://s3.timeweb.com
В качестве эндпойнта может использоваться
s3.timeweb.com
илиs3.timeweb.cloud
— проверить, какой URL нужно указывать в вашем случае, можно в настройках бакета в блоке «Параметры S3». Там же можно найти значения Access Key и Secret Access Keys.
Либо можно воспользоваться мастером настройки, который сформирует аналогичный файл.
Для запуска мастера настройки выполните команду:
rclone config
Пример выполнения настройки через мастер:
No remotes found - make a new one
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
name> timeweb-cloud
Type of storage to configure.
Enter a string value. Press Enter for the default ("").
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"
5 / Backblaze B2
\ "b2"
6 / Box
\ "box"
7 / Cache a remote
\ "cache"
8 / Citrix Sharefile
\ "sharefile"
9 / Dropbox
\ "dropbox"
10 / Encrypt/Decrypt a remote
\ "crypt"
11 / FTP Connection
\ "ftp"
12 / Google Cloud Storage (this is not Google Drive)
\ "google cloud storage"
13 / Google Drive
\ "drive"
14 / Google Photos
\ "google photos"
15 / Hubic
\ "hubic"
16 / JottaCloud
\ "jottacloud"
17 / Koofr
\ "koofr"
18 / Local Disk
\ "local"
19 / Mail.ru Cloud
\ "mailru"
20 / Microsoft Azure Blob Storage
\ "azureblob"
21 / Microsoft OneDrive
\ "onedrive"
22 / OpenDrive
\ "opendrive"
23 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
\ "swift"
24 / Pcloud
\ "pcloud"
25 / Put.io
\ "putio"
26 / SSH/SFTP Connection
\ "sftp"
27 / Transparently chunk/split large files
\ "chunker"
28 / Union merges the contents of several remotes
\ "union"
29 / Webdav
\ "webdav"
30 / Yandex Disk
\ "yandex"
31 / http Connection
\ "http"
32 / premiumize.me
\ "premiumizeme"
Storage> 4
** See help for s3 backend at: https://rclone.org/s3/ **
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"
4 / Digital Ocean Spaces
\ "DigitalOcean"
5 / Dreamhost DreamObjects
\ "Dreamhost"
6 / IBM COS S3
\ "IBMCOS"
7 / Minio Object Storage
\ "Minio"
8 / Netease Object Storage (NOS)
\ "Netease"
9 / Wasabi Object Storage
\ "Wasabi"
10 / Any other S3 compatible provider
\ "Other"
provider> 10
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"
env_auth> false
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> пароль_администратора_хранилища
Region to connect to.
Leave blank if you are using an S3 clone and you don't have a region.
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
1 / Use this if unsure. Will use v4 signatures and an empty region.
\ ""
2 / Use this only if v4 signatures don't work, eg pre Jewel/v10 CEPH.
\ "other-v2-signature"
region> ru-1
Endpoint for S3 API.
Required when using an S3 clone.
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
endpoint> https://s3.timeweb.com
Location constraint - must be set to match the Region.
Leave blank if not sure. Used when creating buckets only.
Enter a string value. Press Enter for the default ("").
location_constraint>
Canned ACL used when creating buckets and storing or copying objects.
This ACL is used for creating objects and if bucket_acl isn't set, for creating buckets too.
For more info visit https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl
Note that this ACL is applied when server side copying objects as S3
doesn't copy the ACL from the source but rather writes a fresh one.
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
1 / Owner gets FULL_CONTROL. No one else has access rights (default).
\ "private"
2 / Owner gets FULL_CONTROL. The AllUsers group gets READ access.
\ "public-read"
/ Owner gets FULL_CONTROL. The AllUsers group gets READ and WRITE access.
3 | Granting this on a bucket is generally not recommended.
\ "public-read-write"
4 / Owner gets FULL_CONTROL. The AuthenticatedUsers group gets READ access.
\ "authenticated-read"
/ Object owner gets FULL_CONTROL. Bucket owner gets READ access.
5 | If you specify this canned ACL when creating a bucket, Amazon S3 ignores it.
\ "bucket-owner-read"
/ Both the object owner and the bucket owner get FULL_CONTROL over the object.
6 | If you specify this canned ACL when creating a bucket, Amazon S3 ignores it.
\ "bucket-owner-full-control"
acl>
Edit advanced config? (y/n)
y) Yes
n) No
y/n> n
Remote config
--------------------
[timeweb-cloud]
provider = Other
env_auth = false
access_key_id = логин_аккаунта
secret_access_key = пароль_администратора_хранилища
region = ru-1
endpoint = https://s3.timeweb.com
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y
Current remotes:
Name Type
==== ====
timeweb-cloud s3
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
Если при настройке через мастер возникнет ошибка, попробуйте выполнить настройку заново, но без указания региона (ru-1).
Полный список поддерживаемых команд смотрите в документации rclone.
В качестве хоста указывается имя хранилища, заданное в конфигурационном файле rclone.conf
. Так, в нашем примере в начале статьи было настроено хранилище с именем timeweb-cloud
.
rclone lsd <имя хоста>:
Например:
rclone lsd timeweb-cloud:
-1 2021-12-10 11:34:51 -1 1d65c254-17ab-4b22-b262-1111fc006937
-1 2022-01-13 10:05:47 -1 3b24945b-d373-4713-89ec-3dece346c7b3
-1 2022-01-14 12:31:36 -1 bbf30ad7-8872-40fc-8d41-54537d894b7f
rclone ls <имя хоста>:<имя бакета>
Например:
rclone ls timeweb-cloud:3b24945b-d373-4713-89ec-3dece346c7b3
13 test.txt
13 test1.txt
rclone -P copy <имя файла> <имя хоста>:<имя бакета>
Например:
rclone -P copy test5.txt timeweb-cloud:3b24945b-d373-4713-89ec-3dece346c7b3
rclone delete <имя хоста>:<имя бакета>/<имя файла>
Например:
rclone delete timeweb-cloud:3b24945b-d373-4713-89ec-3dece346c7b3/test5.txt
rclone copyto -vP --log-file=rclone_<имя отдающего бакета>.log --transfers=256 <имя отдающего хоста>:<имя отдающего бакета> <имя принимающего хоста>:<имя принимающего бакета>
rclone -P sync timeweb-cloud:3b24945b-d373-4713-89ec-3dece346c7b3 /root/test
Для синхронизации в обратном направлении поменяйте аргументы местами.
А можно ссылку на эту статью добавить в раздел https://timeweb.cloud/my/storage ? Было бы удобно)
Передали пожелание коллегам, рассмотрим :)