#Публичный доступ к объекту
GET /v1/public-storage/:portalId/:objectId
Возвращает содержимое публично доступного объекта в виде перенаправления (302) на временную ссылку. Ключ API не требуется — эндпоинт анонимный. Анонимный доступ включается на уровне портала отдельно; по умолчанию выключен.
#Параметры
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
portalId (path) |
string (UUID) | да | Идентификатор портала в Вайбкод. Формат: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. Получить через GET /v1/me с ключом управления — поле data.portals[n].id |
objectId (path) |
string (CUID) | да | Внутренний идентификатор объекта (поле id из ответов на запись и список) |
#Примеры
Ключ не требуется. Оба примера отправляются без заголовков авторизации — это анонимный эндпоинт.
#curl
curl -L "https://vibecode.bitrix24.tech/v1/public-storage/YOUR_PORTAL_ID/YOUR_OBJECT_ID"
#JavaScript
const res = await fetch(
'https://vibecode.bitrix24.tech/v1/public-storage/YOUR_PORTAL_ID/YOUR_OBJECT_ID',
{ redirect: 'follow' }
)
if (!res.ok) {
const body = await res.json()
console.error(body.error.code, body.error.message)
return
}
// res.url — финальный URL файла
#Ответ
Поведение зависит от состояния анонимного доступа на портале:
Анонимный доступ включён на портале. Сервер возвращает 302 Found с заголовком Location, указывающим на временную ссылку хранилища. Ссылка действительна 10 минут. Заголовок ответа: Cache-Control: private, no-store.
Анонимный доступ выключен на портале (значение по умолчанию для нового портала): 503 STORAGE_PUBLIC_GET_DISABLED_FOR_PORTAL. Включается администратором портала.
#Пример ответа при ошибке
503 — анонимный доступ выключен на портале:
{
"success": false,
"error": {
"code": "STORAGE_PUBLIC_GET_DISABLED_FOR_PORTAL",
"message": "Public storage GET is disabled for this portal"
}
}
#Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 404 | STORAGE_OBJECT_NOT_FOUND |
Объект не найден, имеет видимость PRIVATE, принадлежит другому порталу, или objectId не совпадает ни с одним объектом |
| 410 | STORAGE_OBJECT_DELETED |
Объект был удалён |
| 429 | STORAGE_RATE_LIMIT_EXCEEDED |
Превышен лимит 60 запросов в минуту с одного IP-адреса |
| 503 | STORAGE_PUBLIC_GET_DISABLED_FOR_PORTAL |
Анонимный доступ выключен на данном портале |
| 503 | STORAGE_FEATURE_DISABLED |
Хранилище временно недоступно на платформе |
Полный список общих ошибок API — Ошибки.
#Известные особенности
- Анонимный доступ включается отдельно. Объект с видимостью
PUBLICне становится автоматически доступным через этот эндпоинт — администратор портала должен включить анонимный доступ в настройках хранилища. objectId— внутренний идентификатор, не логический ключ. Используйте полеidиз ответа на загрузку (`POST /v1/storage/objects/upload`) или из списка объектов.- Не кешируйте адрес перенаправления — новая временная ссылка формируется при каждом запросе.
#Смотрите также
- Публичный доступ HEAD —
HEAD /v1/public-storage/:portalId/:objectId - Получить объект (авторизованный) —
GET /v1/storage/objects/:key - Список объектов —
GET /v1/storage/objects - Удалить объект —
DELETE /v1/storage/objects/:key