Перейти к содержимому

S3 инструмент Rclone

Rclone — это один исполняемый файл ( rclone или rclone.exe в Windows), который можно просто скачать как zip-архив и извлечь в выбранное вами место.

Установка

Чтобы установить rclone в системах Linux/macOS/BSD, выполните:

Окно терминала
sudo -v ; curl https://rclone.org/install.sh | sudo bash

Для установки бета-версии выполните:

Окно терминала
sudo -v ; curl https://rclone.org/install.sh | sudo bash -s beta

Обратите внимание, что этот скрипт сначала проверяет установленную версию rclone и не будет выполнять повторную загрузку, если в ней нет необходимости.

Установка Linux

Предварительно скомпилированный двоичный файл

Получить и распаковать

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

Запустите rclone config для настройки. Подробнее см. в документации по конфигурации rclone .

rclone config

Установка macOS

Установка с brew

Окно терминала
brew install rclone

Установка с MacPorts

На macOS rclone также можно установить через MacPorts :

sudo port install rclone

Обратите внимание, что это сторонний установщик, не контролируемый разработчиками rclone, поэтому он может быть устаревшим.

Предварительно скомпилированный двоичный файл с использованием curl

Чтобы избежать проблем с привратником macOS, требующим подписи и нотариального заверения двоичного файла, достаточно загрузить его с помощью curl.

Загрузите последнюю версию rclone.

cd && curl -O https://downloads.rclone.org/rclone-current-osx-amd64.zip

Разархивируйте загруженный файл и перейдите в извлеченную папку.

unzip -a rclone-current-osx-amd64.zip && cd rclone-*-osx-amd64

Переместите rclone в $PATH. Вам будет предложено ввести пароль.

sudo mkdir -p /usr/local/bin
sudo mv rclone /usr/local/bin/

( mkdir команда безопасна для выполнения, даже если каталог уже существует).

Удалите оставшиеся файлы.

cd .. && rm -rf rclone-*-osx-amd64 rclone-current-osx-amd64.zip

Запустите rclone config для настройки. Подробнее см. в документации по конфигурации rclone .

rclone config

Предварительно скомпилированный двоичный файл с использованием веб-браузера.

При загрузке бинарного файла с помощью веб-браузера браузер установит атрибут карантина macOS gatekeeper. Начиная с Catalina, при попытке запустить rclone появится всплывающее окно с сообщением:

Самое простое решение — запустить

xattr -d com.apple.quarantine rclone

Установка для Windows

Предварительно скомпилированный двоичный файл.

Чтобы установить rclone в операционной системе Windows, скачиваем бесплатную утилиту rclone для Windows и распаковываем ее.

Получите правильный двоичный файл для вашего типа процессора, нажав на эти ссылки. Если не уверены, используйте первую ссылку.

  • Откройте этот файл в проводнике и извлеките rclone.exe.

Rclone — это портативный исполняемый файл, поэтому вы можете разместить его в любом удобном месте.

Откройте окно CMD (или powershell) и запустите двоичный файл.

Обратите внимание, что rclone не запускает GUI (графический интерфейс) по умолчанию, он работает в окне командной строки CMD.

  • Запустите rclone.exe config для настройки. Подробнее см. в документации по конфигурации rclone .

При желании можно настроить автоматическое выполнение .

Если вы планируете использовать функцию монтирования rclone , вам также потребуется установить стороннюю утилиту WinFsp .

Менеджер пакетов Windows (Winget)

Winget поставляется с предустановленными последними версиями Windows. Если нет, обновите пакет App Installer из магазина Microsoft.

Чтобы установить rclone

winget install Rclone.Rclone

Чтобы удалить rclone

winget uninstall Rclone.Rclone --force

Конфигурация rclone

Конфигурация rclone для Windows

Например мы распокавали утилиту в директорию rclone запустим PowerShell или CMD

Конфигурируем rclone в PowerShell

В командной строке запустим конфигурацию:

C:\rclone\rclone.exe config

Далее предложено будет создать новое удаленное подключение, назавем его s3-adman

Окно терминала
No remotes found, make a new one?
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
Enter name for new remote.
name> s3-adman

Выберем тип S3 хранилища - 5 и в качестве S3- провайдера - (Other) 31

Окно терминала
Option Storage.
Type of storage to configure.
Choose a number from below, or type in your own value.
4 / Amazon S3 Compliant Storage Providers including AWS, Alibaba, ArvanCloud, Ceph, ChinaMobile, Cloudflare, DigitalOcean, Dreamhost, GCS, HuaweiOBS, IBMCOS, IDrive, IONOS, LyveCloud, Leviia, Liara, Linode, Magalu, Minio, Netease, Petabox, RackCorp, Rclone, Scaleway, SeaweedFS, StackPath, Storj, Synology, TencentCOS, Wasabi, Qiniu and others
\ (s3)
Storage> 4
Option provider.
Choose your S3 provider.
Choose a number from below, or type in your own value.
Press Enter to leave empty.
32 / Any other S3 compatible provider
\ (Other)
provider> 32
Окно терминала
Option env_auth.
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.
Choose a number from below, or type in your own boolean value (true or false).
Press Enter for the default (false).
1 / Enter AWS credentials in the next step.
\ (false)
2 / Get AWS credentials from the environment (env vars or IAM).
\ (true)
env_auth> 1

В качестве access_key_id укажите ваш access_key_id, а в качестве secret_access_key укажите ваш secret_access_key

Регион оставьте без изменений, а в качестве endpoint кажите точк подключения к хранилищу, в нашем случае https://s3.adman.com

Окно терминала
Option access_key_id.
AWS Access Key ID.
Leave blank for anonymous access or runtime credentials.
Enter a value. Press Enter to leave empty.
access_key_id> ваш access_key_id
Option secret_access_key.
AWS Secret Access Key (password).
Leave blank for anonymous access or runtime credentials.
Enter a value. Press Enter to leave empty.
secret_access_key> ваш secret_access_key
Option region.
Region to connect to.
Leave blank if you are using an S3 clone and you don't have a region.
Choose a number from below, or type in your own value.
Press Enter to leave empty.
/ Use this if unsure.
1 | Will use v4 signatures and an empty region.
\ ()
/ Use this only if v4 signatures don't work.
2 | E.g. pre Jewel/v10 CEPH.
\ (other-v2-signature)
region>
Option endpoint.
Endpoint for S3 API.
Required when using an S3 clone.
Enter a value. Press Enter to leave empty.
endpoint> https://s3.adman.com

Опцию location_constraint пропускаем, а в качестве опции acl укажите 6

В предложении продивнутой конфигурации Edit advanced config? ставим n

Окно терминала
Option location_constraint.
Location constraint - must be set to match the Region.
Leave blank if not sure. Used when creating buckets only.
Enter a value. Press Enter to leave empty.
location_constraint>
Option acl.
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.
If the acl is an empty string then no X-Amz-Acl: header is added and
the default (private) will be used.
Choose a number from below, or type in your own value.
Press Enter to leave empty.
/ 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> 6
Edit advanced config?
y) Yes
n) No (default)
y/n> n
Configuration complete.
Options:
- type: s3
- provider: Other
- access_key_id: ваш access_key_id
- secret_access_key: ваш secret_access_key
- endpoint: https://s3.adman.com
- acl: bucket-owner-full-control

Проверяем, что вся конфигурация задана правильно и подтверждаем поставив y

И выходим из конфигуратора выбрав q

Окно терминала
Keep this "s3-adman" remote?
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> y
Current remotes:
Name Type
==== ====
s3-adman 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

Работа с S3 через rclone

Команды rclone для работы с S3-хранилищем

Просмотр списка бакетов

rclone lsd <имя хоста>:

Получение списка файлов в бакете

rclone ls s3-adman:<имя бакета>

Создание бакета утилитой rclone

C:\rclone\rclone.exe mkdir s3-adman:new-buket

Загрузить объкт в бакет

C:\rclone\rclone.exe copy file.txt s3-adman:new-buket

Посмотреть объекты в бакете

C:\rclone\rclone.exe ls s3-adman:new-buket

Удалить объект из бакета

C:\rclone\rclone.exe deletefile s3-adman:new-buket/file.txt

Синхронизация файлов на локальной машине с файлами в хранилище

C:\rclone\rclone.exe sync s3-adman:new-buket каталог_на_локальной_машине

Синхронизация файлов в хранилище с файлами на локальной машине

C:\rclone\rclone.exe s3-adman:new-buket sync каталог_на_локальной_машине

Более подробный список команд можно найти в официальной документации.

Монтирование бакета через WinFsp

Чтобы смонтировать контейнер объектного хранилища через rclone, скачиваем и устанавливаем бесплатную утилиту WinFsp.

Возвращаемся в консоль PowerShell и монтируем контейнер через команду:

C:\rclone\rclone.exe mount s3-adman:new-buket S: --vfs-cache-mode full

Автоматизируем процесс монтирования бакета

После перезагрузки сервера необходимо будет заново монтировать контейнер как диск. Чтобы не делать это каждый раз, можно автоматизировать запуск rclone.

Создадим исполняемый файл для запуска rclone и переместим его в автозагрузку.

Создаем файл

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\s3disk.cmd

Прописываем в нем команду:

C:\rclone\rclone.exe mount s3-adman:new-buket S: --vfs-cache-mode full