#Удалить объект
DELETE /v1/storage/objects/:key
Помечает объект как удалённый (мягкое удаление). Поле deletedAt объекта заполняется датой удаления; физические байты остаются в хранилище до 30 дней, затем удаляются автоматически. Восстановление объекта через API недоступно.
#Параметры
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
key (path) |
string | да | Логический ключ объекта, URL-кодированный. Для ключей с / (например users/42/avatar.png) передавать как users%2F42%2Favatar.png |
#Примеры
#curl — личный ключ
curl -s -X DELETE "https://vibecode.bitrix24.tech/v1/storage/objects/docs-test%2Fverify.txt" \
-H "X-Api-Key: YOUR_API_KEY"
#curl — OAuth-приложение
curl -s -X DELETE "https://vibecode.bitrix24.tech/v1/storage/objects/docs-test%2Fverify.txt" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN"
#JavaScript — личный ключ
const key = encodeURIComponent('docs-test/verify.txt')
const res = await fetch(`https://vibecode.bitrix24.tech/v1/storage/objects/${key}`, {
method: 'DELETE',
headers: {
'X-Api-Key': 'YOUR_API_KEY',
},
})
const body = await res.json()
if (body.object?.deletedAt) {
console.log('Объект удалён:', body.object.deletedAt)
}
#JavaScript — OAuth-приложение
const key = encodeURIComponent('docs-test/verify.txt')
const res = await fetch(`https://vibecode.bitrix24.tech/v1/storage/objects/${key}`, {
method: 'DELETE',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
})
const body = await res.json()
if (body.object?.deletedAt) {
console.log('Объект удалён:', body.object.deletedAt)
}
#Поля ответа
| Поле | Тип | Описание |
|---|---|---|
object.id |
string (CUID) | Внутренний идентификатор объекта |
object.key |
string | Логический ключ |
object.contentType |
string | MIME-тип содержимого |
object.sizeBytes |
string | Размер в байтах (строка из-за ограничений JSON на большие числа) |
object.sha256 |
string | null | SHA-256 содержимого, если был передан при загрузке |
object.visibility |
string | PRIVATE или PUBLIC |
object.uploadStatus |
string | Статус загрузки (COMPLETED) |
object.createdAt |
string (ISO 8601) | Дата создания |
object.deletedAt |
string (ISO 8601) | Дата удаления — заполнено после успешного удаления |
#Пример ответа
{
"object": {
"id": "cmpfkc57v0akio510qclwfn7t",
"key": "docs-test/verify.txt",
"contentType": "text/plain",
"sizeBytes": "40",
"sha256": null,
"visibility": "PRIVATE",
"uploadStatus": "COMPLETED",
"createdAt": "2026-05-21T14:05:20.092Z",
"deletedAt": "2026-05-21T14:05:36.880Z"
}
}
#Пример ответа при ошибке
410 — объект уже удалён (повторный вызов):
{
"success": false,
"error": {
"code": "STORAGE_OBJECT_DELETED",
"message": "Object docs-test/verify.txt was deleted"
}
}
#Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 400 | STORAGE_INVALID_KEY |
Ключ содержит недопустимые символы, начинается с / или ., содержит .. или превышает 1024 символа |
| 401 | MISSING_API_KEY |
Не передан заголовок X-Api-Key |
| 403 | STORAGE_SCOPE_REQUIRED |
API-ключ не имеет скоупа vibe:storage |
| 404 | STORAGE_OBJECT_NOT_FOUND |
Объект с таким ключом не найден или принадлежит другому владельцу |
| 409 | STORAGE_MULTIPART_IN_PROGRESS |
Объект находится в состоянии незавершённой составной загрузки — сначала вызовите `/multipart/abort` |
| 410 | STORAGE_OBJECT_DELETED |
Объект уже был удалён ранее |
| 503 | STORAGE_STS_UNAVAILABLE |
Временная недоступность сервиса выдачи учётных данных хранилища — повторите запрос |
| 503 | STORAGE_FEATURE_DISABLED |
Хранилище временно недоступно на платформе |
Полный список общих ошибок API — Ошибки.
#Известные особенности
- Ключи с
/в пути. Косая черта в ключе не является разделителем маршрута — передавайте её URL-кодированной. В JavaScript используйтеencodeURIComponent(key). - Удалённый объект немедленно недоступен. GET и HEAD по ключу возвращают
410 STORAGE_OBJECT_DELETEDдо истечения 30-дневного периода физического удаления. Запрос списка объектов удалённые объекты не включает.
#Смотрите также
- Получить объект —
GET /v1/storage/objects/:key - Список объектов —
GET /v1/storage/objects - Отменить составную загрузку —
POST /v1/storage/objects/multipart/abort - Публичный доступ GET —
GET /v1/public-storage/:portalId/:objectId