Конечные точки загрузки видео, аутентификация и поток запросов
На этой странице описано практическое применение API выгрузки: как создать ключ, какой заголовок отправлять, какую конечную точку вызывать для каждой стратегии выгрузки и какие ограничения важны в производстве.
Быстрый старт
Если вам нужен только кратчайший путь к рабочей интеграции, сначала выполните эти три шага, а затем используйте ссылку на конечную точку.
Создайте ключ API на приборной панели
Ключи API генерируются через аутентифицированную на предъявителя сессию приборной панели. Возвращенный ключ будет показан только один раз, поэтому сохраняйте его сразу.
Отправляйте X-Api-ключ при запросах на загрузку
Конечные точки создания, завершения, прерывания и статуса загрузки принимают необработанный ключ API в заголовке X-Api-Key. Не добавляйте к нему префикс Bearer.
Выберите поток загрузки, соответствующий вашей инфраструктуре
Используйте multipart/form-data для кратчайшей интеграции, presign-put для прямой загрузки объектов или multipart presigning для больших файлов и возобновляемой передачи.
Модель аутентификации
Управление ключами защищено аутентификацией по предъявителю, в то время как при выгрузке принимается либо аутентификация по предъявителю, либо необработанный ключ API. Специфический заголовок выгрузки - X-Api-Key - должен содержать полную строку ключа без префикса.
Оперативная справка: Запросы на загрузку работают только в том случае, если целевые аккаунты уже привязаны к текущему арендатору. API-ключи не заменяют шаг привязки учетной записи на панели управления.
curl -X POST "$BASE_URL/api-keys/generate" \
-H "Authorization: Bearer $JWT" \
-H "Content-Type: application/json" \
-d '{
"name": "CI uploads"
}' curl -X GET "$BASE_URL/api/upload/$UPLOAD_ID/status" \
-H "X-Api-Key: $API_KEY" Ссылка на конечную точку
Именно эти маршруты важны для автоматизации сквозной загрузки. В таблице указаны режим авторизации, тип полезной нагрузки и задание, которое выполняет каждая конечная точка.
/api-keys/generate Сгенерируйте ключ API
Создает новый ключ для текущего арендатора. Тело запроса поддерживает необязательное поле имени. Полный ключ возвращается только в этом ответе.
- Авторизация
- Носитель JWT
- Запрос
- application/json
/api/upload Прямая загрузка форм
Загружает метаданные и бинарный файл в одном запросе. Лучше всего подходит для простых клиентов и небольших интеграций на стороне сервера.
- Авторизация
- X-Api-ключ или Bearer JWT
- Запрос
- multipart/form-data
/api/upload/presign-put Создание сеанса одноразовой загрузки
Возвращает токен сессии, идентификатор файла и URL прямой загрузки. После загрузки объекта завершите поток с помощью /api/upload/complete.
- Авторизация
- X-Api-ключ или Bearer JWT
- Запрос
- application/json
/api/upload/multipart Создание сеанса многокомпонентной загрузки
Возвращает предварительно подписанные URL-адреса для каждой части вместе с маркером сессии. Используйте его, когда большие файлы или нестабильные сети делают чанкированную передачу более безопасной.
- Авторизация
- X-Api-ключ или Bearer JWT
- Запрос
- application/json
/api/upload/complete Завершите сеанс загрузки
Завершает поток с одной или несколькими частями и создает фактическую запись выгрузки, которая начинает обработку целевых счетов.
- Авторизация
- X-Api-ключ или Bearer JWT
- Запрос
- application/json
/api/upload/abort Прервать сеанс загрузки
Отменяет незавершенный сеанс выгрузки и по возможности удаляет поставленный объект.
- Авторизация
- X-Api-ключ или Bearer JWT
- Запрос
- application/json
/api/upload/{uploadId}/status Получение статуса загрузки
Возвращает общий статус и подробную информацию о доставке для каждого аккаунта, включая внешние идентификаторы и информацию о сбоях, если она доступна.
- Авторизация
- X-Api-ключ или Bearer JWT
- Запрос
- Нет тела
/uploads Список загрузок арендаторов
Конечная точка, ориентированная на приборную панель, для постраничной истории загрузок. Она не доступна через аутентификацию по ключу API.
- Авторизация
- Только носитель JWT
- Запрос
- Параметры запроса
Правила проверки и ограничения для моделирования в вашем клиенте
- Размер файлов не должен превышать 0 байт и не более 2 ГБ.
- Для каждой загрузки необходим как минимум один связанный аккаунт, принадлежащий текущему арендатору.
- Поле заголовка обязательно для заполнения и не должно превышать 2200 символов.
- Запланированные посты не могут быть размещены более чем на год вперед.
- Квота начисляется на целевой аккаунт, а не на запрос API.
- Если вы включаете метаданные YouTube, categoryId, defaultLanguage и defaultAudioLanguage становятся обязательными.
Значения общественного статуса
Scheduled
Запись о загрузке принята и ожидает запланированного окна отправки.
Processing
Загрузка активно отправляется или повторяется. Внутренние состояния Retrying и Dispatching представлены как Processing.
Uploaded
Целевая платформа подтвердила публикацию для записи в аккаунте.
Failed
Не удалось завершить загрузку хотя бы для одного пункта назначения. Проверьте значения errorCode и errorMessage для каждого аккаунта.
Примеры запросов
Используйте эти примеры в качестве отправной точки. Замените заполнители реальным URL-адресом базы, токеном предъявителя, ключом API, идентификаторами учетных записей и путями к файлам.
curl -X POST "$BASE_URL/api/upload" \
-H "X-Api-Key: $API_KEY" \
-F "title=Spring launch teaser" \
-F "accounts=account_123" \
-F "accounts=account_456" \
-F "scheduledOn=2026-04-18T09:30:00Z" \
-F "file=@./video.mp4" curl -X POST "$BASE_URL/api/upload/presign-put" \
-H "X-Api-Key: $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Spring launch teaser",
"accounts": ["account_123"],
"fileName": "video.mp4",
"fileSize": 734003200,
"contentType": "video/mp4"
}'
curl -X PUT "$UPLOAD_URL" \
-H "Content-Type: video/mp4" \
--data-binary @./video.mp4
curl -X POST "$BASE_URL/api/upload/complete" \
-H "X-Api-Key: $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"sessionToken": "$SESSION_TOKEN",
"parts": []
}' Хотите получить обзор архитектуры?
В первой статье блога Upload24 объясняется, почему API разделен на управление ключами, создание сессий загрузки и отслеживание доставки для каждого аккаунта.