Подключение бакета как диска в Windows
Вы настроите синхронизацию данных в бакете Yandex Object Storage и на локальном компьютере с помощью утилиты rclone. Бакет будет смонтирован как диск в файловой системе Windows.
Чтобы смонтировать бакет как диск:
- Подготовьте облако к работе.
- Подготовьте рабочее окружение.
- Создайте сервисный аккаунт.
- Создайте статический ключ доступа.
- Создайте бакет.
- Настройте подключение к Object Storage.
- Смонтируйте бакет.
- Настройте службу запуска монтирования.
Если созданные ресурсы вам больше не нужны, удалите их.
Перед началом работы
Перед работой нужно зарегистрироваться в Yandex Cloud и создать платежный аккаунт:
- Перейдите в консоль управления, затем войдите в Yandex Cloud или зарегистрируйтесь, если вы еще не зарегистрированы.
- На странице биллинга убедитесь, что у вас подключен платежный аккаунт, и он находится в статусе
ACTIVE
илиTRIAL_ACTIVE
. Если платежного аккаунта нет, создайте его.
Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака.
Подробнее об облаках и каталогах.
Необходимые платные ресурсы
В стоимость поддержки бакета входит:
- плата за хранение данных в бакете (см. тарифы Object Storage);
- плата за операции с данными (см. тарифы Object Storage).
Подготовьте рабочее окружение
- Скачайте и установите дистрибутив winfsp с сайта производителя.
- Скачайте с сайта производителя архив с утилитами sysinternals suite и распакуйте его в свою рабочую директорию на локальном компьютере.
- Скачайте с сайта производителя архив с утилитой Windows Service Wrapper (winsw) и распакуйте его в свою рабочую директорию на локальном компьютере.
- Скачайте с сайта производителя архив с утилитой rclone и распакуйте его в свою рабочую директорию на локальном компьютере.
Создайте сервисный аккаунт
- В консоли управления выберите каталог, в котором хотите создать сервисный аккаунт.
- Выберите вкладку Сервисные аккаунты.
- Нажмите кнопку Создать сервисный аккаунт.
- Введите имя сервисного аккаунта:
sa-win-disk-connect
. - Нажмите
storage.editor
. - Нажмите кнопку Создать.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Создайте сервисный аккаунт с именем sa-win-disk-connect
:
yc iam service-account create --name sa-win-disk-connect
Требования к формату имени:
- Длина — от 3 до 63 символов.
- Может содержать строчные буквы латинского алфавита, цифры и дефисы.
- Первый символ — буква. Последний символ — не дефис.
Подробнее о команде yc iam service-account create
см. в справочнике CLI.
Чтобы создать сервисный аккаунт, воспользуйтесь методом create для ресурса ServiceAccount.
Создайте статический ключ доступа
- В консоли управления перейдите в каталог, которому принадлежит сервисный аккаунт.
- Перейдите на вкладку Сервисные аккаунты.
- Выберите сервисный аккаунт
sa-win-disk-connect
и нажмите на строку с его именем. - Нажмите кнопку
- Выберите Создать статический ключ доступа.
- Задайте описание ключа и нажмите кнопку Создать.
- Сохраните идентификатор и секретный ключ. После закрытия диалога значение ключа будет недоступно.
-
Создайте ключ доступа для сервисного аккаунта
sa-win-disk-connect
:yc iam access-key create --service-account-name sa-win-disk-connect
Результат:
access_key: id: aje6t3vsbj8lp9r4vk2u service_account_id: ajepg0mjt06siuj65usm created_at: "2022-07-18T14:37:51Z" key_id: 0n8X6WY6S24N7Oj***** secret: JyTRFdqw8t1kh2-OJNz4JX5ZTz9Dj1rI9hx*****
Подробнее о команде
yc iam access-key create
см. в справочнике CLI. -
Сохраните идентификатор
key_id
и секретный ключsecret
. Получить значение ключа снова будет невозможно.
Создайте бакет
- В консоли управления выберите каталог, в котором хотите создать бакет.
- В списке сервисов выберите Object Storage.
- Нажмите кнопку Создать бакет.
- Укажите Имя бакета:
bucket-for-win
. - В полях Доступ на чтение объектов и Доступ к списку объектов выберите Публичный.
- Нажмите кнопку Создать бакет.
-
Если у вас еще нет AWS CLI, установите и сконфигурируйте его.
-
Создайте бакет
bucket-for-win
:aws --endpoint-url https://storage.yandexcloud.net \ s3 mb s3://bucket-for-win
Результат:
make_bucket: bucket-for-win
-
Включите публичный доступ к чтению объектов и их списка:
aws --endpoint-url https://storage.yandexcloud.net \ s3api put-bucket-acl \ --bucket bucket-for-win \ --acl public-read
-
Добавьте в конфигурационный файл параметры бакета
bucket-for-win
:resource "yandex_storage_bucket" "bucket-for-win" { bucket = "bucket-for-win" acl = "public-read" }
Подробнее о ресурсе
yandex_storage_bucket
см. в документации провайдера Terraform. -
Проверьте корректность конфигурационных файлов.
-
В командной строке перейдите в папку, где вы создали конфигурационный файл.
-
Выполните проверку с помощью команды:
terraform plan
Если конфигурация описана верно, в терминале отобразится список создаваемых ресурсов и их параметров. Если в конфигурации есть ошибки, Terraform на них укажет.
-
-
Разверните облачные ресурсы.
-
Если в конфигурации нет ошибок, выполните команду:
terraform apply
-
Подтвердите создание ресурсов: введите в терминал слово
yes
и нажмите Enter.
-
Используйте метод REST API create.
Настройте подключение к Object Storage
-
В рабочей директории запустите командную строку и выполните команду:
psexec -i -s cmd.exe
-
В открывшейся консоли выполните команду
whoami
и убедитесь, что сессия запущена от имени системного пользователя. -
Запустите конфигурацию утилиты
rclone
:rclone.exe config
-
Следуя запросам приложения, создайте новый профиль подключения:
- Выберите создание нового профиля: введите в терминал значение
n
. - Введите имя подключения:
s3-connect
. - Выберите тип хранилища: введите в терминал значение
5
. - Выберите провайдера: введите в терминал значение
1
. - Выберите ручной способ ввода учетных данных: введите в терминал значение
1
. - Введите в терминале идентификатор секретного ключа.
- Введите в терминале значение секретного ключа.
- Укажите регион: введите в терминал значение
ru-central1
. - Укажите эндпоинт: введите в терминал значение
storage.yandexcloud.net
. - Остальные настройки можно оставить по умолчанию — нажмите Enter, чтобы их пропустить.
- Выберите создание нового профиля: введите в терминал значение
Примечание
При необходимости вы можете выполнить расширенную настройку подключения. Для этого на шаге Edit advanced config?
введите в терминале y
. Подробнее с расширенными настройками можно ознакомиться на странице документации утилиты rclone
.
Смонтируйте бакет
-
Проверьте подключение к бакету. В той же командной строке, где выполнялась настройка подключения, выполните команду:
rclone.exe ls s3-connect:bucket-for-win
Если конфигурация настроена правильно, в консоль будет выведен список объектов бакета.
-
Смонтируйте бакет в файловую систему:
rclone.exe mount s3-connect:bucket-for-win <буква диска>: --vfs-cache-mode full
В проводнике Windows появится новый диск с объектами из бакета.
-
Отмонтируйте бакет:
rclone.exe unmount s3-connect:bucket-for-win
Настройте службу запуска монтирования
Чтобы бакет монтировался сразу при запуске компьютера, необходимо настроить запуск монтирования от имени системной службы.
-
В рабочей директории создайте файл
rclone.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 s3-connect:bucket-for-win <буква диска>: --vfs-cache-mode full</arguments>` `<log mode="roll" />` `<onfailure action="restart" />` `</service>`
-
Запустите командную строку от имени администратора и выполните команду:
WinSW-x64.exe install .\\rclone.xml
-
Откройте панель управления службами Windows и убедитесь в наличии службы
rclone-s3-disk
:- Нажмите сочетание клавиш Win+R.
- В открывшемся окне введите
services.msc
и нажмите ОК. - В списке служб найдите
rclone-s3-disk
.
-
Перезагрузите компьютер и проверьте доступность диска.
Примечание
Также вы можете настроить запуск службы от имени служебного пользователя (подробнее в разделе Service account документации утилиты WinSW
).
Как удалить созданные ресурсы
Чтобы перестать платить за созданные ресурсы:
- удалите объекты из бакета
bucket-for-win
; - удалите бакет
bucket-for-win
.