S3-фикстуры для CI — монтирование Amazon S3 как диска в NetDrive
Монтируйте Amazon S3 как локальный диск, чтобы тестовые фикстуры CI работали через обычные пути. Кейс NetDrive для DevOps на Windows и macOS.
Бэкенд-команда хранит 40 ГБ бинарных тестовых фикстур в Amazon S3 — снапшоты баз данных, предрендеренные медиафайлы и крупные референсные датасеты. Их интеграционные тесты читают эти данные как обычные файловые пути. При каждом изменении фикстуры старый процесс один и тот же: aws s3 cp скачивает гигабайты на каждый CI-раннер, и любой, кто запускает пайплайн, ждёт 25 минут, прежде чем тесты вообще начнутся. Монтирование S3-бакета как локального диска через NetDrive полностью устраняет это копирование — тесты читают данные напрямую из S3 по пути вроде T:\fixtures\, без этапа локального скачивания.

Монтируйте S3 как диск — без скачиваний и правки кода
NetDrive показывает Google Drive, OneDrive, S3, SFTP, WebDAV и другие хранилища как обычные диски в Windows и macOS — без синхронизации и полной загрузки файлов.
- Любое приложение, читающее файловый путь, работает без изменений
- Автомонтирование при загрузке держит диск готовым ещё до входа в систему
- Wasabi и MinIO работают точно так же, как Amazon S3
Бесплатный пробный период. Доступны бессрочная лицензия и подписка.
Почему совместимость с файловыми путями важна для CI
Большинство тестовых наборов написаны так, чтобы читать фикстуры с локального пути. Замена каждой ссылки на фикстуру URL-адресом S3 означает правки в десятках файлов и риск сломать удобство работы для разработчиков локально. Более чистое решение — сделать так, чтобы S3 выглядел как локальный диск, и существующие пути продолжали работать без изменений.
NetDrive монтирует S3-бакет как network drive, read-only drive или local disk том — в зависимости от того, что нужно CI-раннеру. В Windows это становится буквой диска (T:, S: и т. д.), доступной для чтения любому процессу на машине. В macOS это появляется как FUSE-том в /Volumes/ или по пользовательскому пути. Тестовый набор видит файловую систему; NetDrive обрабатывает вызовы S3 API в фоне.
Крупные файлы фикстур работают надёжно, поскольку NetDrive передаёт данные потоково по частям и автоматически повторяет попытку при сетевых сбоях. Файлы больше 5 ГБ используют мультипарт-передачи S3 (доступно с NetDrive 3.5.434), так что практического предела для размера фикстуры нет.

Настройка бакета S3 как диска
- Откройте NetDrive и нажмите + Add Drive в Drive Manager.
- Выберите Amazon S3 из списка провайдеров.
- Введите ваш AWS Access Key ID и Secret Access Key. Используйте выделенную IAM-роль с минимальными привилегиями — только чтение для бакетов с фикстурами, права записи — только там, где тесты создают артефакты.
- Введите Bucket Name. Начиная с NetDrive 3.19.7, регион определяется автоматически по конфигурации бакета, так что поле региона можно оставить пустым, если не требуется его переопределить.
- В Drive Type выберите Network drive для обычного монтирования с чтением-записью или Read-only drive, если CI-раннерам никогда не следует писать обратно в бакет с фикстурами.
- Установите Mount on в Boot — это ключевое отличие от настройки на рабочей станции разработчика. Монтирование при загрузке делает диск доступным ещё до входа любого пользователя, что и требуется безголовым CI-серверам.
- Нажмите Mount.
Буква диска (Windows) или путь тома (macOS) теперь доступны любому процессу на машине, включая CI-агент, без активной пользовательской сессии.

Автомонтирование без входа в систему — настройка безголового CI-сервера
Опция Mount on Boot — то, что делает NetDrive практичным для CI-инфраструктуры. Большинство CI-раннеров (агенты Jenkins, self-hosted раннеры GitHub Actions, агенты GitLab) запускаются как системные службы, а не как пользовательские сессии. Диск, который монтируется только при входе пользователя, для таких агентов невидим.
При включённом монтировании при загрузке S3-диск присутствует сразу после завершения старта ОС. CI-агент подхватывает его автоматически — без входа в систему, без скрипта для запуска команды монтирования, без гонки между стартом агента и появлением диска.

Для случаев, когда монтирование должно происходить программно — например, динамический выбор бакета для монтирования по имени ветки или переменной пайплайна, — в NetDrive есть nd3cmd, инструмент командной строки, добавленный в NetDrive 3.8.921, который позволяет управлять дисками через скрипты. Актуальный справочник команд nd3cmd смотрите на форуме поддержки NetDrive, так как точный набор флагов зависит от версии.
Когда тесты создают артефакты (отчёты о покрытии, рендеренные выходные данные, результаты бенчмарков), тот же смонтированный диск работает и для записи. Режим background upload в NetDrive сначала пишет в локальный кеш и асинхронно загружает в S3, так что тестовый процесс не блокируется в ожидании завершения загрузки.

S3 на своей инфраструктуре: MinIO и Wasabi
Не каждая команда использует AWS напрямую. Одни развёртывают MinIO on-premises, чтобы держать данные фикстур вне публичного облака, другие используют Wasabi для экономичного холодного хранения. NetDrive поддерживает S3-совместимые провайдеры хранения начиная с версии 3.4.398 и добавил явную поддержку MinIO в 3.15.450.
Чтобы подключить S3-совместимый эндпоинт:
- Нажмите + Add Drive и выберите S3 Compatible (не Amazon S3).
- Введите custom endpoint URL вашего кластера MinIO или региональный эндпоинт Wasabi.
- Введите имя бакета и учётные данные, как раньше.
- Задайте тип диска и триггер монтирования так же, как обычно.
Остальная настройка идентична. С точки зрения тестового набора, T:\fixtures\ — это T:\fixtures\ независимо от того, что лежит в основе: AWS us-east-1, бакет Wasabi или кластер MinIO, работающий в том же дата-центре, что и CI-раннер.
Итог
Монтирование S3 как буквы диска — способ дать CI-пайплайнам доступ к крупным библиотекам фикстур в объектном хранилище без единой правки кода. Тестовый набор продолжает читать локальные пути; NetDrive берёт на себя трансляцию в S3. Монтирование при загрузке гарантирует, что диск всегда на месте, когда он нужен CI-агенту, без какого-либо ручного вмешательства.
О настройке доступа к S3 на Mac разработчика см. Mount Amazon S3 on macOS with NetDrive. Если вашей команде также нужен экономичный уровень холодного хранения для старых фикстур, Mount Backblaze B2 on Windows with NetDrive описывает похожую настройку с S3-совместимым API Backblaze.
— Alex, NetDrive