Тариф успешно добавлен в корзину
В корзину
url image

Подключение S3-хранилища как виртуального диска в Windows

В ОС Windows можно подключить S3-хранилище как виртуальный диск — так пользователю будет удобнее и проще работать с файлами. После установки взаимодействие с файлами в этом хранилище становится аналогичным работе с обычным локальным диском. Такой подход может быть полезен для синхронизации данных между устройствами, создания облачных резервных копий и других задач, требующих сетевого хранения.

В статье мы подробно рассмотрим, как подключить S3-хранилище в качестве виртуального диска на Windows 10 и 11.

Перед тем как начать! Пожалуйста, проверьте, что ваши диски в Windows не используют букву «S:», так как приведенные ниже инструкции монтируют хранилище по этой букве. Поэтому, если она занята, вам потребуется самостоятельно изменить в командах (перечислены ниже) указание буквы диска на подходящую или изменить букву у диска, который ее занял ранее.

Автоматическая настройка виртуального диска

Услуга S3-хранилище предлагает удобный скрипт для пользователей Windows, который автоматически настроит и подключит виртуальный диск. Этот скрипт создаёт бакет с уникальным именем.

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

  1. Необходимо в Windows с правами администратора использовать включенную опцию Проводника Показать — Расширения имен файлов, чтобы корректно создать новый файл. Например, в Windows 11 это включается так:

  2. Создать в каталоге  C:\scripts\ текстовый файл, изменив его имя и расширение на firstvds-drive.ps1
  3. В файл необходимо вставить следующее содержимое:

    # Запрашиваем у пользователя необходимые данные
    $accessKey = Read-Host "Enter S3 key"
    $secretKey = Read-Host "Enter S3 secret"
    # Пути к загружаемым файлам
    $winfspUrl = "https://github.com/winfsp/winfsp/releases/download/v2.0/winfsp-2.0.23075.msi"
    $rcloneUrl = "https://downloads.rclone.org/v1.68.1/rclone-v1.68.1-windows-amd64.zip"
    $rcloneDir = "C:\Program Files\rclone"
    # Проверка существования директории rclone
    IF (Test-Path $rcloneDir)
    {
    	write-error "$rcloneDir already exist"
    	Pause
    	Exit 1
    }
    # Функция для тихой установки с обработкой ошибок
    function Install-Quietly {
        param(
            [string]$installerPath,
            [string]$silentSwitch = "/quiet"
        )
        try {
            Start-Process -FilePath $installerPath -ArgumentList $silentSwitch -Wait -ErrorAction Stop
        }
        catch {
            Write-Error $_
            Pause
            exit 1
        }
    }
    function New-TemporaryDirectory {
        $parent = [System.IO.Path]::GetTempPath()
        $name = [System.IO.Path]::GetRandomFileName()
        New-Item -ItemType Directory -Path (Join-Path $parent $name)
    }
    try {
        # Скачиваем и устанавливаем WinFSP
        Invoke-WebRequest -Uri $winfspUrl -OutFile "winfsp.msi" -ErrorAction Stop
        Install-Quietly "winfsp.msi"
        Remove-Item "winfsp.msi" -ErrorAction SilentlyContinue
        # Скачиваем и распаковываем rclone
        Invoke-WebRequest -Uri $rcloneUrl -OutFile "rclone.zip" -ErrorAction Stop
    	$tempDir = New-TemporaryDirectory
        Expand-Archive "rclone.zip" -DestinationPath $tempDir -ErrorAction Stop
        Move-Item -Path (Join-Path $tempDir "*") -Destination $rcloneDir -Force -ErrorAction Stop
        Remove-Item -Path $tempDir -Recurse -Force -ErrorAction SilentlyContinue
        Remove-Item "rclone.zip" -ErrorAction SilentlyContinue
        # Создаем конфигурационный файл rclone
        $configContent = @"
    [s3fvds]
    type = s3
    provider = AWS
    access_key_id = $accessKey
    secret_access_key = $secretKey
    region = default
    endpoint = s3.firstvds.ru
    "@
        $configFile = Join-Path $rcloneDir "rclone.conf"
        $configContent | Out-File -FilePath $configFile -Encoding UTF8 -ErrorAction Stop
        # Создаем случайное имя для бакета
        $bucketName = "s3fvds:windowsdrive-" + (Get-Random -Minimum 10000 -Maximum 99999)
        # Создаем бакет
        & "$rcloneDir\rclone.exe" "mkdir" "$bucketName"
        # Создаем сервис rclone
    	$rcln=$rcloneDir+'\'+"rclone.exe mount $bucketName S: --vfs-cache-mode full --volname "+'"FirstVDS S3 Disk"'
    	echo $rcln
    	Write-Host "$rcln"
        New-Service -Name "s3Mount" -BinaryPathName "$rcln" -StartupType "Automatic" -DisplayName "rclone Mount Service" -ErrorAction Stop
        Start-Service "s3Mount" -ErrorAction Stop
        #Write-Host "Complete!"
    }
    catch {
        Write-Error $_
        Pause
        exit 1
    }
    Pause
  4. Откройте меню Пуск и найдите Windows PowerShell.
  5. Щелкните правой кнопкой мыши, чтобы открыть контекстное меню, и выберите Запуск от имени администратора.
  6. Введите команду, которая разрешает выполнение скриптов:

    Set-ExecutionPolicy Unrestricted -Scope Process
  7. Подтвердите выполнение, нажав «y».

  8. Запустите скрипт командой:
    C:\script\firstvds-drive.ps1
    Выберите вариант «запустить однажды», введя «R»:
  9. При появлении запроса введите данные доступа пользователя S3: идентификатор ключа и секретный ключ.
  10. После завершения скрипта убедитесь, что виртуальный диск S: появился в системе.

Настройка подключения вручную

Для тех, кто предпочитает сам контролировать весь процесс, подключение S3-хранилища как виртуального диска в Windows можно выполнить вручную, следуя этим шагам:

1. Получение авторизационных данных

В Личном кабинете перейдите на вкладку S3 хранилище. Там вы можете получить доступы к хранилищу, выбрав услугу и нажав сверху Доступы.

Далее вы увидите раздел Данные доступа для подключения к серверу, они нам пригодятся для последующей настройки rclone.

2. Установка WinFSP

Скачайте и установите WinFSP с официального сайта WinFSP. Эта утилита необходима для создания файловых систем и монтирования виртуального диска.

3. Установка rclone

Скачайте последнюю версию rclone для Windows с официального сайта. Создайте папку C:\Program Files\rclone и извлеките в неё файлы из папки (не саму папку) архива. Rclone управляет подключением к S3 и синхронизацией файлов.

4. Настройка подключения в rclone

Настройте подключение к S3 в rclone. Это делается один раз, после чего используется сохраненная конфигурация.

  • Без командной строки:
    Создайте файл rclone.conf со следующим содержимым, заменив <ключ доступа> и <секретный_ключ> на ваши данные:

    [s3fvds] 
    type = s3
    provider = AWS
    access_key_id = <ключ доступа>
    secret_access_key = <секретный_ключ> 
    region = default 
    endpoint = s3.firstvds.ru

    Поместите файл в папку C:\Program Files\rclone.

  • Через командную строку:
    Откройте Пуск и выберите Командная строка.
    Перейдите в папку rclone:

    cd C:\Program Files\rclone

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

    rclone config

    — Введите параметры по запросу в следующем порядке:

    введите n затем нажмите Enter
    введите s3fvds затем нажмите Enter
    введите 4 затем нажмите Enter 
    введите 1 затем нажмите Enter
    введите 1 затем нажмите Enter 
    введите <ключ доступа> затем нажмите Enter
    введите <секретный_ключ> затем нажмите Enter
    введите default затем нажмите Enter
    введите s3.firstvds.ru затем нажмите Enter

    Пропустите следующие семь параметров, просто нажимая Enter.
    Нажмите «q» для выхода.
    Проверьте подключение:

    rclone lsd s3fvds:

    Если подключение успешно, отобразится список бакетов.

5. Создание бакета

Если вы уже создавали бакет, выберите тот, в который будет смонтирован диск и запомните его имя, либо создайте новый в Личном кабинете.
Для этого выделите услугу и нажмите сверху кнопку Бакеты

Создайте бакет, указав подходящее вам название:

6. Настройка монтирования диска

Подключение бакета S3 как диска позволяет просматривать и изменять его содержимое через стандартные программы, такие как Проводник.

  • Откройте Пуск и выберите Windows PowerShell.

  • Щелкните правой кнопкой мыши и выберите Запуск от имени администратора.
  • Введите команду для создания переменной окружения с командой монтирования, заменив скобки и то, что в них, на название вашего бакета:

    $command1='C:\Program Files\rclone\rclone.exe mount s3fvds:<указать название бакета> S: --vfs-cache-mode full --volname "FirstVDS S3 Disk"'

    Если брать имя бакета (Windows) из нашего скриншота выше, то команда должна выглядеть так:

    $command1='C:\Program Files\rclone\rclone.exe mount s3fvds:windows S: --vfs-cache-mode full --volname "FirstVDS 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 s3fvds:<указать название бакета> s: 
    --vfs-cache-mode full --volname "FirstVDS S3 Disk"

    Проверьте в Проводнике, что диск появился.

  • Для ведения логов добавьте к команде монтирования параметры:
    --log-file=rclone.log — вывод лога в файл.
    --log-level=DEBUG — все сообщения в логе.
  • Чтобы управлять службами Windows, используйте services.msc. Там можно останавливать и запускать службы, связанные с виртуальным диском.
  • Для удаления сервиса автоматического монтирования выполните (может потребоваться перезагрузка): 

    sc delete s3Mount
  • Если буква S уже занята, выберите другую. Убедитесь, что на момент подключения выбранная буква не используется.
  • Для оптимизации кеширования используйте режим полного кеширования, чтобы файлы сначала сохранялись локально, а затем загружались в облако. Подробности можно найти в документации VFS File Caching.

Подключение S3-хранилища в качестве виртуального диска в Windows — это удобный способ управления облачными данными, который значительно упрощает синхронизацию и резервное копирование. Благодаря двум методам настройки — автоматическому и ручному — пользователи могут выбрать наиболее подходящий для себя подход, учитывая уровень опыта и предпочтения. Следуя нашим рекомендациям, вы сможете успешно интегрировать S3-хранилище в свою рабочую среду и наслаждаться всеми преимуществами облачных технологий.

Этот материал был полезен?

Скидка новым клиентам
Закажите сервер сегодня и получите скидку на первый месяц аренды!