Для AI-агентов: markdown этой страницы — /docs-content/storage/upload/multipart-abort.md индекс документации — /llms.txt
Отменить составную загрузку
POST /v1/storage/objects/multipart/abort
Отменяет незавершённую сессию составной загрузки и освобождает загруженные части. Для первой загрузки запись PENDING удаляется. При замене существующий объект и его прежнее содержимое сохраняются, очищаются только поля сессии. Состояние сессии очищается только после успешной отмены или ответа хранилища, что указанный uploadId уже отсутствует. При таймауте, 5xx, throttling или неизвестной ошибке abort сервер сохраняет сессию для повтора и возвращает 502 STORAGE_BUCKET_ERROR. Если сессией уже владеет финализация, abort возвращает 409 STORAGE_KEY_CONFLICT: повторите complete с теми же parts; зажурналированный ответ завершится локально, а неподтверждённый исход требует операторской сверки. Отменённые части восстановить невозможно.
Поля запроса (body)
Тело запроса — JSON.
| Параметр | Тип | Обяз. | По умолч. | Описание |
|---|---|---|---|---|
objectId |
string | да | — | Идентификатор объекта, полученный из ответа /multipart/create |
Примеры
curl — личный ключ
curl -X POST https://vibecode.bitrix24.tech/v1/storage/objects/multipart/abort \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"objectId": "cmpfg012a01aco510mrr6u632"}'
curl — OAuth-приложение
curl -X POST https://vibecode.bitrix24.tech/v1/storage/objects/multipart/abort \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{"objectId": "cmpfg012a01aco510mrr6u632"}'
JavaScript — личный ключ
const res = await fetch(
'https://vibecode.bitrix24.tech/v1/storage/objects/multipart/abort',
{
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({ objectId: 'cmpfg012a01aco510mrr6u632' }),
}
)
const { aborted } = await res.json()
console.log('Aborted:', aborted) // true
JavaScript — OAuth-приложение
const res = await fetch(
'https://vibecode.bitrix24.tech/v1/storage/objects/multipart/abort',
{
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({ objectId: 'cmpfg012a01aco510mrr6u632' }),
}
)
const { aborted } = await res.json()
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
aborted |
boolean | true при успешной отмене |
Пример ответа
{
"aborted": true
}
Пример ответа при ошибке
404 — объект не найден или сессия уже завершена:
{
"success": false,
"error": {
"code": "STORAGE_OBJECT_NOT_FOUND",
"message": "StorageObject cmpfg012a01aco510mrr6u632 not found"
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 403 | STORAGE_SCOPE_REQUIRED |
API-ключу не хватает скоупа vibe:storage |
| 401 | STORAGE_NO_AUTH_CONTEXT |
Запрос выполнен без авторизации |
| 400 | STORAGE_INVALID_PATH |
Идентификатор вызывающего содержит недопустимые символы пути |
| 400 | STORAGE_OBJECT_ID_REQUIRED |
Не передано поле objectId |
| 404 | STORAGE_OBJECT_NOT_FOUND |
Объект с указанным objectId не найден, не принадлежит текущему вызывающему или сессия уже завершена |
| 409 | STORAGE_KEY_CONFLICT |
Если адрес временно занят до финализации, повторите abort после освобождения. Если сессией владеет финализация, повторите complete с теми же parts: зажурналированный ответ завершится локально, а неподтверждённый исход провайдера требует операторской сверки |
| 502 | STORAGE_BUCKET_ERROR |
Отмена у провайдера не подтверждена, поэтому сессия сохранена. Повторите ту же операцию abort |
| 503 | STORAGE_FEATURE_DISABLED |
Хранилище отключено для портала |
| 503 | STORAGE_STS_UNAVAILABLE |
Служба выдачи временных учётных данных недоступна |
Полный список общих ошибок API — Ошибки.
Известные особенности
Незавершённые сессии обрабатываются автоматически через 24 часа. Для первой загрузки строка PENDING удаляется, а для замены сохраняются существующий объект и его прежнее содержимое, но только после подтверждённой отмены у провайдера. Если /abort вернул 502 STORAGE_BUCKET_ERROR, повторяйте его: обязанность очистки и uploadId сохранены.