Интеграция с Amazon S3#
Интеграция с Amazon S3 подключает твои бакеты S3 к Ultralytics Platform. Твои изображения остаются в твоих бакетах — Platform индексирует их на месте, поэтому ты можешь просматривать, размечать и обучать модели YOLO без загрузки копий.
Для датасетов Amazon S3 требуется план Pro или Enterprise. В бесплатных рабочих пространствах эта интеграция видна, и при попытке подключения предлагается выполнить апгрейд. Существующие датасеты Amazon S3 остаются полностью доступными, если срок действия подписки истекает — план Pro необходим только для новых подключений и импорта.
Создание IAM-пользователя с правами только для чтения#
Platform только читает данные из твоего хранилища — она никогда не записывает, не изменяет и не удаляет твои объекты. Используй выделенного пользователя IAM только с правами на просмотр и чтение — никогда не используй учетные данные рута:
-
В консоли AWS перейди в IAM > Users и создай пользователя без доступа к консоли.
-
Прикрепи политику, предоставляющую права только на просмотр списка и чтение бакетов, которые ты хочешь подключить:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "*" }, { "Effect": "Allow", "Action": ["s3:ListBucket", "s3:GetObject"], "Resource": ["arn:aws:s3:::my-bucket", "arn:aws:s3:::my-bucket/*"] } ] }s3:ListAllMyBucketsнеобязателен — он позволяет Platform обнаруживать твои бакеты, чтобы тебе не приходилось вводить их названия вручную. -
Открой вкладку Security credentials пользователя, создай access key (ключ доступа) и скопируй ID ключа доступа и секретный ключ доступа.
Platform отклоняет временные учетные данные AWS. Ключи, выданные AWS STS — включая все, что начинается с ASIA, учетные данные сеанса роли и ключи IAM Identity Center — истекают, пока датасет все еще подключен, поэтому требуется долгосрочный ключ доступа выделенного пользователя IAM.
Подключение к Platform#
- Перейди в раздел Settings > Integrations и выбери Amazon S3 в списке интеграций.
- Введи идентификатор ключа доступа (access key ID), секретный ключ доступа и регион бакета (например,
us-east-1). - Нажми Find available buckets, затем выбери бакеты для подключения. Если политика не разрешает обнаружение, введи известное имя бакета вручную.
- Нажми Connect. Перед сохранением Platform проверяет, может ли она прочитать каждый выбранный бакет.

Тебе нужна роль администратора или владельца воркспейса для подключения облачного хранилища. Одно подключение поддерживает до 50 бакетов, а обнаружение выводит до 300 бакетов, которые видит этот ключ.
Повторное подключение того же IAM-пользователя позже добавит новые бакеты к уже существующей интеграции. Сохраненный ключ заменяется новым только в том случае, если новый ключ по-прежнему имеет доступ ко всем бакетам, которые ты уже подключил.
Одно подключение работает с бакетами в указанном тобой регионе. Если твои бакеты расположены в разных регионах, создавай отдельное подключение для каждого региона.
Учетные данные шифруются в состоянии покоя с помощью AES-256-GCM, никогда не возвращаются в браузер и никогда не передаются обучающим ворклодам. Чтобы отозвать доступ, деактивируй ключ доступа в AWS IAM.
Создание датасета из бакета S3#
- Нажми 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 МБ каждый. Более крупные бакеты следует разделять на несколько наборов данных.
Каждое проиндексированное изображение привязывается к ETag объекта в S3, и если объект изменяется, Platform блокирует работу с ним. Добавляй новые объекты вместо перезаписи существующих.
Ошибки импорта#
Если импорт завершается неудачей (пустая папка, опечатка в пути или отозванные разрешения), набор данных отображает ошибку на своей странице. Редакторы могут нажать Retry import, чтобы перезапустить его с сохраненными данными бакета и папки, или создать новый набор данных, указывающий на исправленный путь.
Повторная попытка выполняет повторное перечисление содержимого папки, а не возобновление: объекты, добавленные после первой попытки, захватываются, а объекты, которых больше нет, удаляются из датасета.
Training#
Управляемое обучение работает через обычный пайплайн обучения. Обучение использует собственные копии закрепленных изображений Platform на время выполнения запуска, а твои учетные данные AWS никогда не передаются обучающим ворклодам.
Отключение подключения#
Отключение удаляет сохраненные учетные данные, не затрагивая ничего в AWS. Датасеты, созданные из этих бакетов, остаются в твоем воркспейсе со своими классами, метками и аннотациями, но их изображения нельзя загрузить, просмотреть или использовать для обучения, пока тот же пользователь IAM не будет подключен снова.
Используй 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")Чтобы вместо этого отозвать доступ на стороне источника, деактивируй или удали ключ доступа в AWS IAM.
Текущие ограничения#
В датасетах на базе S3 в настоящее время недоступны функции, требующие владения копиями твоих изображений со стороны Platform: авторазметка, кластерный анализ, клонирование датасетов и неизменяемые снапшоты версий.
Удаление датасета на базе S3 или отдельных изображений из него удаляет только ссылки внутри Platform — твои объекты в S3 остаются нетронутыми.
Также ознакомься с интеграциями Google Cloud Storage и Azure Blob Storage.