Интеграция с Amazon S3#
Интеграция с Amazon S3 подключает твои бакеты S3 к Ultralytics Platform. Изображения остаются в твоих бакетах — платформа индексирует их на месте, поэтому ты можешь просматривать, аннотировать изображения и обучать модели YOLO, не загружая их копии.
Для наборов данных Amazon S3 требуется тариф Pro или Enterprise. В бесплатных рабочих пространствах отображается интеграция и предлагается перейти на платный тариф при подключении. Существующие наборы данных Amazon S3 остаются полностью доступными после окончания подписки — только для новых подключений и импорта требуется Pro.
Создай пользователя IAM только для чтения#
Платформа только читает данные из твоего хранилища — она никогда не записывает, не изменяет и не удаляет объекты. Используй отдельного пользователя IAM с правами только на просмотр списка и чтение — никогда не используй учётные данные root:
-
В консоли 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— необязательный параметр: он позволяет платформе обнаруживать твои бакеты, чтобы тебе не пришлось вводить их имена. -
Открой вкладку Security credentials пользователя, создай ключ доступа и скопируй идентификатор ключа доступа и секретный ключ доступа.
Платформа отклоняет временные учётные данные AWS. Ключи, выданные AWS STS, — в том числе любые, начинающиеся с ASIA, учётные данные
сеанса роли и ключи IAM Identity Center — истекают, пока набор данных всё ещё подключён, поэтому необходим долгосрочный ключ доступа отдельного пользователя IAM.
Подключение к Platform#
- Перейди в Settings > Integrations и выбери Amazon S3 в списке интеграций.
- Введи идентификатор ключа доступа, секретный ключ доступа и регион бакета (например,
us-east-1). - Нажми Find available buckets, затем выбери бакеты для подключения. Если политика не разрешает обнаружение бакетов, введи имя известного бакета вручную.
- Нажми Connect. Прежде чем что-либо сохранять, Platform проверит, что может просматривать список и читать данные каждой выбранной корзины.

Для подключения облачного хранилища тебе нужна роль администратора или владельца рабочего пространства. Одно подключение поддерживает до 50 бакетов, а при обнаружении отображается до 300 бакетов, доступных этому ключу.
При повторном подключении того же пользователя IAM в существующую интеграцию добавляются новые бакеты. Сохранённые учётные данные заменяются, только если новые учётные данные по-прежнему позволяют читать все уже подключённые бакеты.
Подключение считывает данные из бакетов в указанном регионе. Если твои бакеты находятся в нескольких регионах, создай отдельное подключение для каждого региона.
Учётные данные шифруются при хранении с помощью AES-256-GCM, никогда не передаются браузеру и не раскрываются рабочим нагрузкам обучения. Чтобы отозвать доступ, деактивируй ключ доступа в AWS IAM.
Создай набор данных из бакета S3#
- Нажми New Dataset и открой вкладку Cloud.
- Выбери подключённую корзину и перейди к папке с данными.
- Подтверди выбор папки, при необходимости измени имя набора данных и создай его.
Platform один раз просматривает содержимое папки и индексирует найденные данные:
- Изображения — объекты
.jpg,.jpeg,.png,.webpи.avifиндексируются; размеры считываются с помощью запросов с ограниченным объёмом данных. Platform не сохраняет вторую копию исходного изображения. - Метки — файлы
.txtв формате YOLO преобразуются в аннотации Platform и сопоставляются по стандартной структуреimages/→labels/либо с файлами в той же папке. - Метаданные — YAML-файл содержит имена классов и форму ключевых точек позы, как и при загрузке архива. Если в папке несколько таких файлов, предпочтение отдаётся
data.yamlиdata.yml. - Задача — тип задачи определяется по выборке файлов с метками, поэтому папки для сегментации, оценки позы и OBB распознаются по структуре меток, а не по задаче, выбранной в диалоговом окне.
- Разбиения — имена папок
train,valиtestв ключе объекта автоматически определяют разбиения.
Дальше с набором данных можно работать как с любым другим: просматривать и размечать его, делать общедоступным или закрытым, делиться им со своей командой и обучать на его данных с помощью управляемого обучения. Оригиналы передаются по запросу, а индексированные изображения не расходуют квоту хранилища Platform.
При одном импорте индексируется до 500 000 объектов; размер каждого файла меток или YAML-файла не должен превышать 1 МБ. Большие корзины следует распределить по нескольким наборам данных.
Каждое индексированное изображение привязано к ETag объекта S3, и платформа блокирует доступ, если объект изменяется. Добавляй новые объекты, а не перезаписывай существующие.
Неудачный импорт#
Если импорт не удался — например, папка пуста, в пути опечатка или разрешения отозваны, — ошибка отображается на странице набора данных. Редакторы могут нажать Retry import, чтобы запустить импорт заново с сохранёнными данными о корзине и папке, или создать новый набор данных с исправленным путём.
При повторной попытке список объектов в папке формируется заново, а не продолжается с места остановки: добавленные после первой попытки объекты попадут в набор данных, а отсутствующие там больше объекты будут из него исключены.
Обучение#
Управляемое обучение выполняется в обычном режиме. Во время запуска для обучения используются собственные копии привязанных изображений, хранящиеся на платформе, а твои учётные данные 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, деактивируй или удали ключ доступа в AWS IAM.
Текущие ограничения#
Наборы данных на базе S3 сейчас не поддерживают функции, для которых требуются собственные копии изображений на платформе: автоматическую аннотацию, кластерный анализ, клонирование наборов данных и неизменяемые снимки версий.
При удалении набора данных на базе S3 или отдельных изображений из него удаляются только ссылки платформы — сами объекты никогда не затрагиваются.
Смотри также интеграции с Google Cloud Storage и Azure Blob Storage.
Часто задаваемые вопросы#
Нет. Platform один раз просматривает корзину и индексирует найденные размеры изображений и метки. Оригиналы передаются по запросу для просмотра и разметки, а при управляемом обучении используются только собственные копии Platform изображений, привязанных к версиям объектов, и только на время запуска. Индексированные изображения не учитываются в квоте хранилища.
Набор данных индексируется один раз при создании. Новые объекты не будут обнаружены, пока ты не создашь новый набор данных или не повторишь неудачный импорт; каждое индексированное изображение привязано к своей версии, поэтому при перезаписи объекта Platform перестанет работать с этим изображением. Добавляй новые объекты, а не заменяй существующие.
В подключённых наборах данных недоступны функции, для которых нужны копии изображений в Platform: авторазметка, кластерный анализ, клонирование набора данных и неизменяемые снимки версий. Ручная разметка, совместный доступ и обучение работают как обычно.
Отключи интеграцию в Settings > Integrations, чтобы удалить сохранённые учётные данные, или деактивируй либо удали ключ доступа в AWS IAM. Ни одно из этих действий не затрагивает данные в твоих бакетах.