Интеграция Amazon S3
Интеграция Amazon S3 подключает твои контейнеры S3 к Ultralytics Platform. Изображения остаются в твоих контейнерах — Platform индексирует их на месте, поэтому ты можешь просматривать их, аннотировать и обучать модели YOLO, не загружая копию. Если функции ИИ включены, Platform также может использовать изображения для интеллектуального аннотирования, автоматического аннотирования, поиска похожих изображений и облачного обучения.
Для датасетов Amazon S3 требуется тариф Pro или Enterprise. Пользователи бесплатных рабочих пространств видят интеграцию и при подключении получают предложение перейти на платный тариф. Если подписка закончится, существующие датасеты Amazon S3 останутся полностью доступными — тариф Pro нужен только для новых подключений и импортов.
Создание пользователя IAM#
Доступа на чтение достаточно для всех действий, кроме генерации изображений, при которой также создаются объекты. Platform никогда не изменяет и не удаляет твои объекты. Создай отдельного пользователя IAM — никогда не используй учётные данные корневой учётной записи:
-
В консоли AWS перейди в IAM > Пользователи и создай пользователя без доступа к консоли.
-
Прикрепи политику, предоставляющую права на просмотр списка объектов и чтение данных из контейнеров, которые нужно подключить:
{ "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 находить твои бакеты, чтобы тебе не приходилось вводить их имена.Для генерации изображений также разреши
s3:PutObject:{ "Effect": "Allow", "Action": "s3:PutObject", "Resource": [ "arn:aws:s3:::my-bucket/generated/*", "arn:aws:s3:::my-bucket/*/generated/*", "arn:aws:s3:::my-bucket/.ultralytics-write-check" ] }В S3 нет разрешения только на создание, поэтому эта политика ограничивает запись папками
generated/и ключом.ultralytics-write-check, который Platform использует для проверки права записи (эта проверка всегда отклоняется, поэтому данные не сохраняются). Сама Platform никогда не перезаписывает данные при записи. -
Открой вкладку Учётные данные безопасности пользователя, создай ключ доступа и скопируй его идентификатор и секретный ключ доступа.
Platform отклоняет временные учётные данные AWS. Ключи, выданные AWS STS, — в том числе начинающиеся с ASIA, учётные данные сеанса роли и ключи IAM Identity Center — истекают, пока датасет ещё подключён. Поэтому требуется долгосрочный ключ доступа отдельного пользователя IAM.
Подключение к Platform#
- Перейди в Настройки > Интеграции и выбери Amazon S3 в списке интеграций.
- Введи идентификатор ключа доступа, секретный ключ доступа и регион бакета (например,
us-east-1). - Нажми Найти доступные бакеты, затем выбери бакеты для подключения. Если политика не разрешает поиск бакетов, введи имя известного бакета вручную.
- Нажми Connect. Перед сохранением данных Platform проверит, что может просматривать список объектов и читать данные из каждого выбранного контейнера, а также проверит возможность записи с помощью запроса, который S3 всегда отклоняет, поэтому данные не сохраняются.

Для каждого подключённого учётного доступа есть переключатель функций ИИ. Изменив политику IAM, подключи того же пользователя IAM ещё раз, чтобы повторно проверить право записи.
Для подключения облачного хранилища тебе нужна роль администратора или владельца рабочего пространства. За один раз можно добавить до 50 бакетов, а поиск отобразит до 300 бакетов, доступных этому ключу.
При повторном подключении того же пользователя IAM к существующей интеграции добавляются новые бакеты. Сохранённые учётные данные заменяются только в том случае, если новые учётные данные по-прежнему позволяют читать каждый уже подключённый бакет. Если какой-либо бакет недоступен для чтения, ошибка укажет его имя, в том числе если бакет был подключён ранее с помощью того же пользователя IAM.
Подключение получает доступ к бакетам в указанном регионе. Если твои бакеты находятся в разных регионах, создай отдельное подключение для каждого региона.
Учётные данные шифруются при хранении с помощью AES-256-GCM, никогда не передаются браузеру и не предоставляются рабочим нагрузкам обучения. Чтобы отозвать доступ, деактивируй ключ доступа в AWS IAM.
Функции ИИ#
Для каждого подключённого учётного доступа в Settings > Integrations есть переключатель функций ИИ, включённый по умолчанию. Если он включён, GPU Ultralytics и поставщики моделей ИИ могут использовать изображения из этого учётного доступа для:
- интеллектуального аннотирования SAM, а также автоматического аннотирования одного изображения и пакетного автоматического аннотирования
- поиска похожих изображений и анализа кластеризации
- облачного обучения
- генерации изображений в контейнерах с правом записи
Провайдеры моделей ИИ используются только для генерации изображений, для которой Google Gemini составляет запросы на основе исходного изображения, и для платных моделей разметки, работающих с ключом провайдера из твоего рабочего пространства. Platform не хранит копии изображений: функции считывают их по запросу, облачное обучение использует временные копии на время запуска, а для поиска похожих изображений хранится эмбеддинг каждого изображения, который удаляется, когда изображение покидает Platform.
Выключи переключатель, чтобы изображения не передавались на GPU Ultralytics и поставщикам моделей ИИ. После выключения новые задачи ИИ не запускаются; текущие задачи выполняются до конца. Наборы данных, использующие этот учётный доступ, будут показывать статус AI features off со ссылкой на эти настройки, а для каждой недоступной функции будет указана причина. Ручное аннотирование, совместный доступ и локальное обучение продолжат работать, а уже созданные метки, модели и результаты поиска сохранятся.
Чтобы изменить переключатель, тебе нужна роль администратора или владельца рабочего пространства. Также это можно сделать через REST API, указав ID интеграции, возвращённый методом GET /api/integrations/buckets:
curl -X PATCH \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"processing": false}' \
https://platform.ultralytics.com/api/integrations/buckets/INTEGRATION_IDГенерация изображений#
Функция генерации похожих изображений работает с наборами данных Amazon S3, если пользователь IAM может записывать данные в соответствующий контейнер и включены функции ИИ. Добавленные изображения записываются в папку generated/ внутри папки набора данных, а затем добавляются в набор данных как любые другие индексированные изображения. Platform только создаёт там новые объекты и никогда не перезаписывает и не удаляет существующие. Если действие сообщает, что нужен доступ на запись, предоставь его, если необходимо, и снова подключи того же пользователя IAM в Settings > Integrations.
Создай датасет из бакета S3#
- Нажми New Dataset и открой вкладку Cloud.
- Выбери подключённый бакет и перейди к папке с данными.
- Подтверди выбор папки, при необходимости измени название набора данных и создай его.
Platform однократно перечисляет содержимое папки и индексирует найденные данные:
- Изображения — объекты
.jpg,.jpeg,.png,.webpи.avifиндексируются; размеры считываются с помощью ограниченных по объёму запросов. Platform не сохраняет вторую копию исходного изображения. - Метки — файлы YOLO
.txtразбираются в аннотации Platform и сопоставляются по стандартной структуреimages/→labels/или как соседние файлы в одной папке. - Метаданные — YAML-файл содержит названия классов и структуру ключевых точек позы, как и при загрузке архива. Если в папке несколько файлов, предпочтение отдаётся
data.yamlиdata.yml. - Задача — задача определяется по выборке файлов меток, поэтому папки segment, pose и OBB распознаются по структуре меток, а не по задаче, выбранной в диалоговом окне.
- Разбиение на выборки — названия папок
train,valиtestв ключе объекта автоматически определяют выборки.
Дальше набор данных работает как любой другой: просматривай его и размечай, делай его общедоступным или приватным, делись им со своей командой и обучай модели с помощью управляемого обучения. Исходные данные передаются по запросу, а индексированные изображения не расходуют квоту хранилища Platform.
За один импорт индексируется до 500 000 объектов, а файлы разметки или YAML — размером до 1 МБ каждый. Более крупные бакеты следует разделить на несколько датасетов.
Каждое индексированное изображение привязано к ETag объекта S3, и Platform блокирует доступ, если объект изменяется. Добавляй новые объекты, а не перезаписывай существующие.
Неудачный импорт#
Если импорт завершается ошибкой — например, из-за пустой папки, опечатки в пути или отозванных разрешений, — ошибка отображается на странице датасета. Редакторы могут нажать Повторить импорт, чтобы перезапустить его с сохранёнными бакетом и папкой, или создать новый датасет, указав исправленный путь.
При повторном импорте папка сканируется заново, а не с того места, где импорт остановился: в датасет добавляются объекты, появившиеся после первой попытки, а объекты, которых больше нет, удаляются из датасета.
Обучение#
При включённых функциях ИИ управляемое обучение выполняется в обычном режиме обучения. На время выполнения обучения используются собственные копии закреплённых изображений, хранящиеся в Platform; учётные данные AWS никогда не передаются задачам обучения. Если функции ИИ выключены, в диалоговом окне обучения объясняется, почему облачное обучение недоступно, и предлагается локальное обучение.
Отключение подключения#
При отключении сохранённые учётные данные удаляются, но в AWS ничего не меняется. Датасеты, созданные на основе этих бакетов, остаются в твоём рабочем пространстве вместе со своими классами, метками и аннотациями, но их изображения нельзя загружать, просматривать или использовать для обучения, пока снова не будет подключён тот же пользователь IAM. Даже без подключения ты можешь переименовывать датасеты, редактировать метки и удалять датасеты.
Чтобы отключить подключение, перейди в Настройки > Интеграции, выбери Amazon S3, нажми Отключить рядом с учётными данными и подтверди действие. При открытии одного из таких датасетов появится сообщение Amazon S3 отключено со ссылкой на эти настройки. После повторного подключения датасет снова станет доступен автоматически.
Отключить подключение можно также через 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 недоступны функции, которым нужны копии изображений под управлением Platform: клонирование набора данных, неизменяемые снимки версий, размытие лиц и вставка изображений из других наборов данных. Для интеллектуального аннотирования, автоматического аннотирования, поиска похожих изображений, кластеризации, облачного обучения и генерации изображений нужно включить функции ИИ.
При удалении датасета на основе S3 или отдельных изображений из него удаляются только ссылки Platform — сами объекты не затрагиваются.
См. также интеграции Google Cloud Storage и Azure Blob Storage.
Часто задаваемые вопросы#
Нет. Platform один раз просматривает контейнер и индексирует обнаруженные размеры изображений и метки. Исходные изображения передаются по запросу для просмотра и аннотирования. Если функции ИИ включены, GPU Ultralytics считывают изображения по запросу, для управляемого обучения используются временные копии на время выполнения, а для поиска похожих изображений сохраняется эмбеддинг каждого изображения, удаляемый вместе с изображением. Единственные объекты, которые Platform когда-либо записывает, — это добавленные тобой сгенерированные изображения в папке
generated/. Индексированные изображения не учитываются в лимите хранилища.Датасет индексируется один раз при создании. Новые объекты не попадут в него, пока ты не создашь новый датасет или не повторишь неудачный импорт. Каждое индексированное изображение привязано к своей версии, поэтому при перезаписи объекта Platform блокирует доступ к этому изображению. Добавляй новые объекты, а не заменяй существующие.
Только при генерации изображений и только если у пользователя IAM есть разрешение
s3:PutObject, а функции ИИ включены. Platform создаёт новые объекты в папкеgenerated/внутри папки набора данных и никогда не перезаписывает и не удаляет существующие.Отключи интеграцию в Settings > Integrations, чтобы удалить сохранённые учётные данные, или деактивируй либо удали ключ доступа в AWS IAM. Ни одно из этих действий не затрагивает данные в твоих контейнерах. Чтобы изображения не передавались на GPU Ultralytics, не отключая интеграцию, выключи функции ИИ.
Комментарии
Задай вопрос, поделись результатами или помоги кому-нибудь.