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

Подключение бакета как диска в Windows

Подготовка рабочего пространства

Создание S3-хранилища

Если у Вас еще нет S3-хранилища:

  1. Создайте заказ. В карточке созданного заказа Вы увидите данные: Access key — Access Key ID, идентификатор ключа; Secret key — Secret Access Key, секретный ключ.

  2. Создайте бакет.

Скачайте rclone для Windows

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

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

Скачайте утилиту WinFsp

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

Скачайте исполняемый файл WinSW

Для настройки автоматического запуска службы монтирования бакета в качестве диска скачайте исполняемый файл Windows Service Wrapper (WinSW) в соответствии с конфигурацией вашей ОС и поместите его в отдельную папку.

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

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

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

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

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

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

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

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

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

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 хранилища - 4 и в качестве 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

Для монтирования контейнера воспользуемся командой mount:

rclone mount <s3-adman>:<container> <disk_name>

container — это имя монтируемого бакета disk_name — это название диска, с которым будет примонтирован бакет (контейнер), например: G:.

Также можно использовать символ * и система самостоятельно укажет обозначение диска.

Пример:

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

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

Проверим результат: В проводнике открываем раздел Этот компьютер и проверяем наличие смонтированного контейнера.

Автоматическое монтирование бакета

Есть несколько вариантов автоматизировать монтирование бакета в качестве диска после перезагрузки компьютера:

  1. Автозагрузка исполняемого файла типа .cmd
  2. Настройка службы запуска монтирования при помощи утилиты WinSW

Автоматическое монтирование посредством автозагрузки

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

Для настройки автоматического монтирования бакета S3 создадим текстовый файл.

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

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

сохраняем с расширением .cmd

Например:** s3disk.cmd**

Копируем созданный файл в директорию, содержащую файлы, котрые автоматически запускаются при старте операционной системы:

Окно терминала
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\

Теперь проверим перезагрузив ОС и проверим подмонтирован ли бакет S3-хранилища в разделе Этот компьютер

Настройка службы запуска монтирования

Вариант 2. Чтобы бакет монтировался сразу при запуске компьютера, необходимо настроить запуск монтирования от имени системной службы.

В папке с утилитой WinSW создайте файл в формате .xml, например myWinSW.xml со следующим содержимым:

<service>
<id>rclone</id>
<name>rclone-s3-disk</name>
<description>This service maps an S3 bucket as a system drive.</description>
<executable>"<расположение_рабочей_папки>\rclone.exe"</executable>
<arguments>mount <Имя_подключения>:<имя_бакета> <буква_диска>: --vfs-cache-mode full</arguments>
<log mode="roll" />
<onfailure action="restart" />
</service>

Для нашего примера это будет выглядеть так:

files WinSW

Содержимое файла WinSW-x64.xml:

<service>
<id>rclone</id>
<name>rclone-s3-disk</name>
<description>This service maps an S3 bucket as a system drive.</description>
<executable>"c:\rclone\rclone.exe"</executable>
<arguments>mount s3-adman:new-buket g: --vfs-cache-mode full</arguments>
<log mode="roll" />
<onfailure action="restart" />
</service>

В этой же папке запустите командную строку от имени администратора (cmd) и выполните команду:

В нашем примере:

.\WinSW-x64.exe install .\WinSW-x64.xml

Откройте панель управления службами Windows и убедитесь в наличии службы rclone-s3-disk:

  1. Нажмите сочетание клавиш Win+R.
  2. В открывшемся окне введите services.msc и нажмите ОК.
  3. В списке служб найдите rclone-s3-disk.
  4. Перезагрузите компьютер и проверьте доступность диска.

Диск успешно смонтирован!

Как удалить смонтированный диск

  1. Если Вы настроили автоматическое монтирование бакета посредством размещения исполняемого файла .cmd, то Вам достаточно удалить этот файл из директории
Окно терминала
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\

и перезагрузить компьютер.

  1. Если Вы настроили автоматическое монтирование бакета от имени системной службы, то Вам необходимо остановить и отключить службу.

files WinSW files WinSW

  1. Нажмите сочетание клавиш Win+R.
  2. В открывшемся окне введите services.msc и нажмите ОК.
  3. В списке служб найдите rclone-s3-disk.
  4. Выделите эту службу кликните “Остановить”.
  5. Правой кнопкой мыши кликните по Службе и во всплывающем меню выберите “Свойства”
  6. В окне свойств во вкладке “Общие” выберите Типа запуска: “Отключена” и нажмите ОК
  7. Проверьте в Проводнике “Этот компьютер” факт отключения диска.