Подключение хранилища S3 как виртуального диска Windows
Хранилище S3 можно подключить в ОС Windows как виртуальный диск. После этого работа с файлами в хранилище для пользователя не будет отличаться от работы с обычным логическим диском. Виртуальный диск можно использовать для синхронизации данных между двумя компьютерами, для облачного бэкапа файлов и в других задачах, где требуется сетевое хранение информации.
В этой статье будет рассмотрено подключение хранилища S3 в качестве виртуального диска в ОС Windows 10/11.
Автоматическое добавление и настройка виртуального диска
Сервис CLO предоставляет пользователям Windows скрипт, который автоматически выполнит настройку и подключение виртуального диска. Скрипт создаёт бакет со случайным названием.
Чтобы выполнить автоматическую настройку, воспользуйтесь следующими действиями:
- Скачайте скрипт clo-drive.ps1
- Поместите скрипт по адресу C:\script\clo-drive.ps1
- Откройте Пуск → Windows PowerShell
- Вызовите контекстное меню правой кнопкой и выберите Запуск от имени администратора
- Выполните команду, разрешающую запуск скриптов:
Set-ExecutionPolicy Unrestricted -Scope Process
- Разрешите запуск, нажав «y»
- Запустите скрипт командой:
C:\script\clo-drive.ps1
- Дайте разрешение на запуск, нажав «r»
- По запросу скрипта введите доступы к пользователю S3: идентификатор ключа и секретный ключ
- После завершения работы скрипта убедитесь, что в системе появился виртуальный диск S:
Подключение хранилища к диску вручную
Чтобы подключить хранилище S3 в качестве виртуального диска Windows вручную, вам потребуется выполнить действия в следующем порядке:
- Создать пользователя S3 с бакетом в Личном кабинете CLO
- Скачать и установить WinFSP
- Скачать и разархивировать rclone
- Настроить подключение к S3 в rclone
- Настроить монтирование диска
Рассмотрим подробнее каждый из этих шагов.
Шаг 1. Создание пользователя с бакетом
В бакете будут храниться файлы, которые мы разместим в виртуальном диске.
- Перейдите в Личный кабинет → Хранилище S3 в меню слева → Создать пользователя, оставьте отмеченным пункт Бакет по умолчанию
- Дождитесь создания бакета. Чтобы открыть доступы к бакету, нажмите Доступы на строке бакета
Шаг 2. Скачивание и установка WinFSP
- Скачайте установщик на официальном сайте https://winfsp.dev/rel/ → Download WinFsp Installer
- Запустите установщик, выберите все опции по умолчанию
Примечание. Утилита WinFSP позволяет создавать файловые системы, необходима для монтирования виртуального диска. Это вспомогательная программа, работать с ней напрямую пользователю не придётся.
Шаг 3. Скачать и разархивировать rclone
- На официальном сайте https://rclone.org/downloads/ скачайте последнюю версию для Windows 64 bit
- Создайте папку для программы: C:\Program Files\rclone
- Извлеките файлы из скачанного архива в эту папку
Примечание. Утилита rclone управляет подключением к бакету S3, а также обеспечивает двустороннюю синхронизацию файлов. Это основная программа, именно через неё осуществляется основная настройка виртуального диска.
Шаг 4. Настройка подключения к хранилищу S3 в утилите rclone
Чтобы работать с S3, необходимо настроить подключение. Это требуется сделать один раз. После этого используется сохраненная конфигурация.
Вариант без командной строки:
- Создайте файл rclone.conf с содержимым, приведённым ниже. Обязательно подставьте данные своего ключа
[s3clo]
type = s3
provider = AWS
access_key_id = <идентификатор_ключа>
secret_access_key = <секретный_ключ>
region = default
endpoint = storage.clo.ru
- Поместите файл rclone.conf в папку C:\Program Files\rclone
Вариант через командную строку:
- Откройте Пуск → Командная строка
- Перейдите в рабочую папку rclone:
cd "C:\Program Files\rclone"
- Запустите конфигурацию в интерактивном режиме командой:
rclone config
- По очереди вводите запрашиваемые параметры. Нажимайте после ввода каждого параметра Enter/Ввод:
- n
- s3clo
- 4
- 1
- 1
- вставьте идентификатор своего ключа
- вставьте свой секретный ключ
- default
- storage.clo.ru
- следующие семь параметров нужно пропустить, просто нажав Enter/Ввод 7 раз
- нажмите «q» для выхода из мастера настройки
Созданное подключение можно проверить командой:
rclone lsd s3clo:
Если подключение выполнено правильно, то в окне вывода терминала должен отобразиться список бакетов, например:
rclone lsd s3clo:
-1 2924-69-12 -1 s3-user-3228ac-default-bucket
Название бакета — последнее значение в строке, в данном случае s3-user-3228ac-default-bucket.
Шаг 5. Настройка монтирования диска
Последний шаг — подключение бакета S3 в качестве диска. После этого содержимое хранилища S3 можно будет просматривать и модифицировать с помощью любых программ, работающих с файлами (например, через Проводник).
Чтобы настроить автоматическое подключение диска при каждом включении ОС:
- Откройте Пуск → Windows PowerShell
- Вызовите контекстное меню правой кнопкой и выберите Запуск от имени администратора
- Выполните приведённую ниже команду, чтобы задать переменную окружения с командой монтирования. Подставьте в переменную название своего бакета.
Внимание! Важно выполнить эту операцию отдельным шагом.
$command1='C:\Program Files\rclone\rclone.exe mount s3clo:(ПОДСТАВИТЬ название бакета вместо скобок) S: --vfs-cache-mode full --volname "CLO S3 Disk"'
- Добавьте сервис для автоматического монтирования, выполнив следующую команду:
New-Service -Name "s3Mount" -BinaryPathName "$command1" -StartupType "Automatic" -DisplayName "rclone Mount Service" -ErrorAction Stop
- Запустите сервис перезагрузкой компьютера, или выполнив команду:
Start-Service "s3Mount" -ErrorAction Stop
- Откройте Проводник и убедитесь, что виртуальный диск S: появился в системе.
Теперь диск должен монтироваться автоматически при старте операционной системы.
Решение проблем
Ручной запуск команды монтирования
Выполните монтирование вручную, если автоматическое не срабатывает. Так вы сможете убедиться в том, что команда монтирования работает, и что монтирование диска в принципе происходит
- Откройте Пуск → Командная строка
- Перейдите в рабочую папку rclone:
cd "C:\Program Files\rclone"
- Запустите команду ниже, подставив название своего бакета
rclone mount s3clo:[название_бакета] s: --vfs-cache-mode full --volname "S3 Disk CLO"
Примечание. Название бакета можно посмотреть, выполнив команду rclone lsd s3clo:
- Откройте Проводник → Этот компьютер и убедитесь что диск появился в списке
- При завершении работы скрипта диск пропадет из системы.
Внимание! Не запускайте команду монтирования в качестве администратора системы! В этом случае обычный пользователь не увидит диск в системе.
Ведение лога
Чтобы находить ошибки, вам может понадобиться лог работы утилиты rclone. Чтобы сохранять логи, к команде монтирования выше надо добавить параметры:
- --log-file=rclone.log — вывод лога в файл
- --log-level=DEBUG — все сообщения в логе
Файл с логом будет находиться в рабочей папке rclone.
Управление службами Windows
Вызовите Win+R → services.msc, чтобы открыть список служб Windows. В этой программе можно посмотреть список доступных служб, а также запустить и остановить службы.
Удаление сервиса автоматического монтирования
Запустите командную строку от имени администратора, как описано выше, и выполните приведённую далее команду. В некоторых случаях может потребоваться перезагрузка.
sc delete s3Mount
Буква диска
Команды монтирования виртуального диска, описанные в этой статье, по умолчанию подключают диск под буквой S. Измените её на другую произвольную букву, если буква S уже занята.
Примечание. Важно, чтобы диск, отмеченный выбранной буквой, не существовал в системе на момент подключения хранилища.
Кеширование
В командах монтирования этого руководства для максимальной совместимости используется режим полного кеширования. Это означает, что файлы сначала помещаются в локальный кеш (по умолчанию на системном диске), и только после этого загружаются в облако. При работе с файлами из облака кеш занимает место на диске.
Для более тонкой настройки кэша вы можете изучить VFS File Caching в официальной документации.
Подключение произвольного провайдера S3
Используя инструкции, приведённые в этой статье, вы можете подключить виртуальный диск для хранилища S3 от любого провайдера. Вам потребуется только соответствующим образом изменить подключение в файле rclone.conf, указав нужную пару ключей к вашему бакету, а также соответствующий адрес провайдера в поле endpoint и нужный регион в поле region.