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

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