Интеграция с Google Cloud Storage#
Интеграция Google Cloud Storage подключает твои бакеты GCS к Ultralytics Platform. Твои изображения остаются в твоих бакетах — Platform индексирует их на месте, поэтому ты можешь просматривать, размечать и обучать модели YOLO без загрузки копии.
Для датасетов Google Cloud Storage требуется Pro or Enterprise plan. В бесплатных рабочих пространствах интеграция видна, и при попытке подключения появляется запрос на обновление тарифа. Существующие датасеты Google Cloud Storage остаются полностью доступными, если подписка заканчивается — тариф Pro требуется только для новых подключений и импорта.
Создание сервисного аккаунта с правами только для чтения#
Platform только читает данные из твоего хранилища — она никогда не записывает, не изменяет и не удаляет твои объекты. Создай выделенный service account только с правами на чтение:
- В консоли Google Cloud перейди в IAM & Admin > Service Accounts и создай сервисный аккаунт.
- Назначь ему роль Storage Object Viewer (
roles/storage.objectViewer) для бакетов, которые ты хочешь подключить. - Открой сервисный аккаунт, выбери Keys > Add key > Create new key, выбери JSON и загрузи файл ключа.
roles/storage.objectViewer охватывает все действия Platform с твоими данными, но не позволяет выводить список бакетов в проекте. Добавь роль с storage.buckets.list, если хочешь, чтобы Platform находила твои бакеты автоматически; в противном случае вводи имя каждого бакета вручную при подключении.
Подключение к Platform#
- Перейди в Settings > Integrations и выбери Google Cloud Storage из списка интеграций.
- Вставь содержимое JSON-ключа учетной записи службы.
- Нажми Find available buckets, затем выбери бакеты для подключения. Если учетная запись службы не может получить список бакетов, введи известное имя бакета вручную.
- Нажми Connect. Перед сохранением Platform проверяет, может ли она прочитать каждый выбранный бакет.

Для подключения облачного хранилища тебе нужна роль администратора или владельца рабочей области. Одно подключение поддерживает до 50 бакетов, а поиск выводит до 300 бакетов, доступных сервисному аккаунту.
Твой браузер считывает вставленный файл ключа и отправляет только три поля, необходимые Platform — client_email, private_key и project_id. Остальная часть JSON никогда не покидает страницу.
Повторное подключение того же сервисного аккаунта позже добавит новые бакеты к уже имеющейся интеграции. Сохраненные учетные данные заменяются только в том случае, если новые учетные данные также могут прочитать все уже подключенные бакеты.
Учетные данные шифруются в состоянии покоя с помощью AES-256-GCM, никогда не возвращаются в браузер и не передаются рабочим нагрузкам обучения. Чтобы отозвать доступ, удали ключ сервисного аккаунта в Google Cloud.
Создание набора данных из бакета GCS#
- Нажми New Dataset и открой вкладку Cloud.
- Выбери подключенный бакет и перейди в папку с твоими данными.
- Подтверди выбор папки, укажи название набора данных и создай его.
Platform просканирует папку один раз и проиндексирует найденное:
- Images — объекты
.jpg,.jpeg,.png,.webpи.avifиндексируются с размерами, которые считываются посредством ограниченных запросов. Platform не сохраняет вторую копию исходного изображения. - Labels — сопутствующие файлы YOLO
.txtпреобразуются в аннотации Platform, сопоставляемые по стандартной структуреimages/→labels/или как файлы в той же папке. - Metadata — файл YAML задает имена классов и форму ключевых точек позы, точно так же, как при загрузке архива.
data.yamlиdata.ymlпредпочтительнее, если в папке их несколько. - Task — образец файлов разметки определяет задачу, поэтому папки segment, pose и OBB распознаются по форме их разметки, а не по задаче, выбранной в диалоговом окне.
- Splits — имена папок
train,valиtestв пути к объекту автоматически назначают выборки.
После этого датасет ведет себя как любой другой: просматривай и размечай его, сделай его публичным или приватным, делись им со своей командой и обучайся на нем с помощью управляемого обучения. Оригиналы передаются по запросу в режиме реального времени, а проиндексированные изображения не расходуют твою квоту хранилища в Platform.
Один импорт индексирует до 50 000 объектов, а также файлы меток или YAML размером до 1 МБ каждый. Более крупные бакеты следует разделять на несколько наборов данных.
Каждое проиндексированное изображение привязано к своей версии объекта GCS, и Platform выдает ошибку, если объект изменяется. Добавляй новые объекты вместо перезаписи существующих.
Ошибки импорта#
Если импорт завершается неудачей (пустая папка, опечатка в пути или отозванные разрешения), набор данных отображает ошибку на своей странице. Редакторы могут нажать Retry import, чтобы перезапустить его с сохраненными данными бакета и папки, или создать новый набор данных, указывающий на исправленный путь.
Повторная попытка выполняет повторное перечисление содержимого папки, а не возобновление: объекты, добавленные после первой попытки, захватываются, а объекты, которых больше нет, удаляются из датасета.
Training#
Управляемое обучение работает в рамках стандартного процесса обучения. Обучение использует собственные копии закрепленных изображений Platform на время выполнения задачи, а твои учетные данные Google Cloud никогда не передаются рабочим нагрузкам обучения.
Отключение подключения#
Отключение удаляет сохраненные учетные данные, не затрагивая ничего в Google Cloud. Датасеты, созданные из этих бакетов, остаются в твоей рабочей области со своими классами, разметкой и аннотациями, но их изображения нельзя загружать, просматривать или использовать для обучения, пока тот же сервисный аккаунт не будет подключен снова.
Используй REST API с идентификатором интеграции, возвращаемым GET /api/integrations/buckets:
curl -X DELETE \
-H "Authorization: Bearer YOUR_API_KEY" \
https://platform.ultralytics.com/api/integrations/buckets/INTEGRATION_IDfrom ultralytics_platform import Platform
client = Platform() # reads ULTRALYTICS_API_KEY
integrations = client.storage_integrations.list()
client.storage_integrations.delete("INTEGRATION_ID")Чтобы отозвать доступ на стороне источника, удали ключ сервисного аккаунта в Google Cloud.
Текущие ограничения#
Датасеты на базе GCS в настоящее время не поддерживают функции, требующие создания копий твоих изображений на стороне Platform: авторазметку, анализ кластеризации, клонирование датасета и неизменяемые версионные снимки.
Удаление набора данных на базе GCS или отдельных изображений из него удаляет только ссылки на Platform — твои объекты при этом не затрагиваются.
Также см. интеграции Amazon S3 и Azure Blob Storage.