Самостоятельная загрузка файлов
Как загрузить исходный файл в Problembo File Store и использовать его в API задачах через `fileId` или прямой `url`.
Самостоятельная загрузка файлов
Если задача ожидает файл, API payload не принимает содержимое файла в виде Base64. Для файловых полей используйте один из двух вариантов:
url— публичныйhttp/httpsURL, который Problembo сможет скачать самfileId— идентификатор файла, который вы заранее загрузили в Problembo File Store
Вариант 1: передать url
Это самый простой вариант, если файл уже доступен по прямой ссылке http/https.
{
"srcImage": {
"url": "https://example.com/input/photo.png",
"origFilename": "photo.png"
}
}Когда вы отправляете задачу, Problembo скачивает файл, загружает его во
внутреннее хранилище, заменяет url на fileId, а затем запускает обработку.
Вариант 2: загрузить файл самостоятельно и использовать fileId
Используйте этот путь для server-to-server интеграций, когда файл локальный, приватный или вы не хотите, чтобы Problembo скачивал его со стороннего URL.
Этот upload-flow работает через API token и использует эндпоинты
/apis/v1/client/files/*.
Шаг 1: запросить presigned URL для загрузки
curl 'https://problembo.com/apis/v1/client/files/upload-url-for-src' \
-X POST \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_TOKEN' \
-d '{
"origFileName": "photo.png",
"fileSizeBytes": "2458123"
}'Типичный ответ для обычной single-part загрузки:
{
"fileId": "910e1b85-4677-49d4-abd3-41218733ab60.png",
"uploadUrl": "https://...",
"contentDisposition": "inline; filename=photo.png",
"origFileName": "photo.png"
}Шаг 2: загрузить бинарный файл в uploadUrl
curl -X PUT 'UPLOAD_URL_FROM_STEP_1' \
--upload-file ./photo.pngШаг 3: подтвердить загрузку
curl 'https://problembo.com/apis/v1/client/files/upload-complete' \
-X POST \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_TOKEN' \
-d '{
"fileId": "910e1b85-4677-49d4-abd3-41218733ab60.png"
}'Ответ:
{
"remoteFile": {
"fileId": "910e1b85-4677-49d4-abd3-41218733ab60.png"
}
}Шаг 4: использовать fileId в /apis/v1/client/tasks
{
"srcImage": {
"fileId": "910e1b85-4677-49d4-abd3-41218733ab60.png",
"origFilename": "photo.png"
}
}Особенности client upload-flow:
forceRouteво внешнем client API не поддерживается- отдельного download endpoint для source-файлов нет
- любой API token того же аккаунта может повторно использовать этот
fileId - при создании
/apis/v1/client/tasksProblembo проверяет, чтоfileIdпринадлежит владельцу токена и находится в статусеACTIVE
Multipart-загрузка для больших файлов
Если на шаге 1 сервер вернул multipartPlan, нужно использовать multipart-flow
вместо одного PUT запроса.
В этом случае:
- Загрузите каждый кусок файла в свой
multipartPlan.parts[].uploadUrl - Соберите значения
etag, которые вернёт S3-совместимое хранилище - При необходимости запросите новые presigned part URLs через
/apis/v1/client/files/multipart-plan - Завершите загрузку через
/apis/v1/client/files/upload-multipart-complete
Пример запроса на обновление multipart plan для части, у которой истекла ссылка:
curl 'https://problembo.com/apis/v1/client/files/multipart-plan' \
-X POST \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_TOKEN' \
-d '{
"fileId": "910e1b85-4677-49d4-abd3-41218733ab60.mp4",
"partNumbers": [2]
}'Пример ответа:
{
"uploadId": "upload-123",
"partSizeBytes": "5242880",
"parts": [
{
"partNumber": 2,
"uploadUrl": "https://..."
}
]
}Пример запроса на завершение:
curl 'https://problembo.com/apis/v1/client/files/upload-multipart-complete' \
-X POST \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_TOKEN' \
-d '{
"fileId": "910e1b85-4677-49d4-abd3-41218733ab60.mp4",
"parts": [
{ "partNumber": 1, "etag": "etag-part-1" },
{ "partNumber": 2, "etag": "etag-part-2" }
]
}'{
"remoteFile": {
"fileId": "910e1b85-4677-49d4-abd3-41218733ab60.mp4"
}
}Что выбрать?
- Используйте
/apis/v1/client/files/*, если у вас server-to-server интеграция с API token - Используйте
url, если файл уже доступен по прямой ссылкеhttp/https - Используйте
fileId, если файл локальный, приватный, большой или генерируется внутри вашей системы - Не передавайте Base64-содержимое файла внутри task payload
Последнее обновление: 8 марта 2026
Документация по API
API токены — это учетные данные для аутентификации, которые позволяют программно получать доступ к сервисам Problembo. Используйте токены для интеграции наших AI-сервисов в ваши приложения, скрипты или рабочие процессы.
Чат
Документация по AI-чату Problembo: узнайте, как начинать диалоги, управлять чатами, использовать функции чата и выбирать подходящую модель.