# Объекты

Операции с объектами хранилища: список, скачивание, получение метаданных, удаление и публичный доступ.

**Скоуп:** `vibe:storage` | **Базовый URL:** `https://vibecode.bitrix24.tech/v1` | **Авторизация:** API-ключ (`X-Api-Key`); публичные эндпоинты работают без авторизации

## Операции

- [Список объектов](./objects/list.md) — `GET /v1/storage/objects`
- [Скачать объект](./objects/get.md) — `GET /v1/storage/objects/:key`
- [Метаданные объекта](./objects/head.md) — `HEAD /v1/storage/objects/:key`
- [Удалить объект](./objects/delete.md) — `DELETE /v1/storage/objects/:key`
- [Публичное скачивание](./objects/public-get.md) — `GET /v1/public-storage/:portalId/:objectId`
- [Публичные метаданные](./objects/public-head.md) — `HEAD /v1/public-storage/:portalId/:objectId`

## Сценарии

**Получение ссылки для скачивания.** `GET /v1/storage/objects/:key` возвращает HTTP 302 с заголовком `Location`. Браузеры следуют перенаправлению автоматически. В серверном коде используйте `redirect: 'manual'` и читайте `response.headers.get('location')`. Ссылка действует 10 минут.

**Список по префиксу.** Параметр `prefix` фильтрует объекты по началу ключа. Например, `prefix=users/42` вернёт все объекты с ключами, начинающимися с `users/42`. Для перехода по страницам используйте `cursor` из предыдущего ответа.

**Ключ в URL.** Символы `/` в ключе необходимо кодировать: `encodeURIComponent('users/42/report.csv')` возвращает `'users%2F42%2Freport.csv'`. Без кодирования запрос направится по другому пути.

**Публичный доступ.** Завершённый объект с `visibility=PUBLIC` и `uploadStatus=COMPLETED` доступен по постоянному URL без авторизации. Пока загрузка имеет статус `PENDING`, публичный URL возвращает `404 STORAGE_OBJECT_NOT_FOUND`. URL формируется из `portalId` (идентификатор портала, не `appId`) и `objectId` — это поле `id` объекта из ответов на создание или список, а не логический ключ.

## Смотрите также

- [Хранилище](/docs/storage)
- [Загрузка](/docs/storage/upload)
- [Ключи и авторизация](/docs/keys-auth)
