Подключение бакета S3 как диска в Windows – при помощи утилиты rclone

Вы можете смонтировать бакет объектного хранилища S3 Beget как обычный диск в файловой системе Windows. Для этого используется утилита rclone – кроссплатформенная консольная программа для работы с облачными хранилищами – и WinFsp – драйвер, который позволяет монтировать удаленные хранилища в Windows через интерфейс FUSE.

После настройки S3-бакет будет отображаться в проводнике Windows как отдельный диск – и вы сможете работать с файлами в нем так же, как с обычной локальной папкой. В этой статье разберем, как подключить S3 как сетевой диск в Windows с помощью утилиты rclone.

Перед началом работы

Чтобы работать с объектным хранилищем S3, у вас должен быть зарегистрирован аккаунт в Beget, а в разделе “Облачное объектное хранилище S3” панели управления создан бакет. Если бакета еще нет, создайте его, воспользовавшись инструкцией.

Подготовка рабочего окружения

  1. Скачайте и установите дистрибутив WinFsp – этот драйвер нужен, чтобы Windows могла монтировать удаленное хранилище как локальный диск.
  2. Скачайте архив с утилитой rclone для Windows и распакуйте его в рабочую папку на локальном компьютере, например: C:\bucket\rclone.
  3. Добавьте папку с rclone в переменную среды PATH, чтобы можно было запускать утилиту из любой директории:
    1. Нажмите “Пуск” и в строке поиска Windows введите “Изменение системных переменных среды”.
    2. Справа внизу нажмите кнопку “Переменные среды”.
    3. В открывшемся окне найдите параметр PATH и нажмите “Изменить”.
    4. Добавьте путь к папке с rclone в список, например: C:\bucket\rclone.
    5. Нажмите кнопку “ОК”.

Настройка подключения к объектному хранилищу

Запустите командную строку PowerShell, перейдите в папку с утилитой rclone и запустите ее конфигурацию:

./rclone.exe config

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

  1. Выберите создание нового профиля: введите в терминал значение n.
  2. Введите имя подключения, например: beget-connect.
  3. Выберите тип хранилища: Amazon S3 Compliant Storage Providers including AWS.
  4. Выберите провайдера: Any other S3 compatible provider.
  5. Выберите ручной способ ввода учетных данных: Enter AWS credentials in the next step.
  6. Введите в терминал значение Access Key, узнать его можно, перейдя на страницу бакета.
реквизиты доступа S3
  1. Введите в терминал значение Secret Key.
  2. Укажите регион: введите в терминал ru1.
  3. Укажите эндпоинт: введите в терминал значение URL со страницы бакета.
  4. Параметр location_constraint оставьте пустым – нажмите Enter.
  5. Для параметра ACL выберите значение private.
  6. Остальные настройки можно оставить по умолчанию – нажмите Enter, чтобы их пропустить.
Обратите внимание!
При необходимости вы можете выполнить расширенную настройку подключения. Для этого на шаге Edit advanced config? введите в терминале значение y. Подробнее о расширенных настройках можно узнать на странице документации утилиты rclone.

Проверьте корректность указанных данных и нажмите y, если всё верно. Хранилище будет добавлено в rclone.

Current remotes:
Name                 Type
====                 ====
beget-connect        s3

Монтаж бакета

  1. Проверьте подключение к бакету. В том же окне командной строки, в котором выполнялась настройка подключения, выполните команду, указав имя подключения и бакета:
./rclone.exe ls <имя_подключения>:<имя_бакета>

Имя бакета отображено в панели управления на странице бакета.

Например:

./rclone.exe ls beget-connect:b0bb759836af-endless-corinnea

Если конфигурация настроена правильно, в консоль будет выведен список объектов бакета.

  1. Смонтируйте бакет в файловую систему, указав имя бакета и свободную букву диска:
./rclone.exe mount <имя_подключения>:<имя_бакета> <буква_диска>: --vfs-cache-mode full --file-perms 0777 --dir-perms 0777

В проводнике Windows появится новый диск с объектами из бакета.

смонтированный бакет
  1. Чтобы отмонтировать бакет, нажмите клавиши Ctrl + C в окне, где запущено монтирование.

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

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

  1. В рабочей папке на локальном компьютере создайте файл bucket_mount.vbs и добавьте в него следующий код:
Set WshShell = CreateObject("WScript.Shell")
command = "<путь_к_папке_rclone>\rclone.exe mount <имя_подключения>:<имя_бакета> <буква_диска>: --vfs-cache-mode full --file-perms 0777 --dir-perms 0777"
WshShell.Run command, 0, False

В файле укажите: имя подключения, имя бакета, букву диска, а также полный путь к файлу rclone.exe. Например: 

Set WshShell = CreateObject("WScript.Shell")
command = "C:\bucket\rclone\rclone.exe mount beget-connect:b0bb759836af-endless-corinnea W: --vfs-cache-mode full --file-perms 0777 --dir-perms 0777"
WshShell.Run command, 0, False
  1. Откройте редактор системного реестра regedit.exe:
    1.  Перейдите в ветку HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run и в этой ветке создайте строковый параметр bucket-mounter.
    2. Измените значение созданного параметра bucket-mounter на полный путь к созданному ранее файлу с VBS-скриптом. Например: C:\bucket\bucket_mount.vbs.

С этого момента ваш бакет будет автоматически монтироваться при каждом входе пользователя на компьютер.

Как отключить бакет

Чтобы перестать пользоваться диском, выполните следующие действия:

  • Отключите автоматическое монтирование в S3 – удалите параметр bucket-mounter из ветки реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run.
  • Отмонтируйте диск, если он подключен (клавиши Ctrl + C в окне терминала либо перезагрузите компьютер).

Если возникнут вопросы, напишите нам, пожалуйста, тикет из панели управления аккаунта (раздел “Помощь и поддержка”), а если вы захотите обсудить эту статью, настройку rclone или наши продукты с коллегами по цеху и сотрудниками Beget – ждем вас в нашем сообществе в Telegram.