[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-storage\u002Fobjects\u002Fpublic-get":3,"docs-tabs-storage\u002Fobjects\u002Fpublic-get":6},{"content":4,"lastmod":5},"\n## Публичный доступ к объекту\n\n`GET \u002Fv1\u002Fpublic-storage\u002F:portalId\u002F:objectId`\n\nВозвращает содержимое публично доступного объекта в виде перенаправления (302) на временную ссылку. Ключ API не требуется — эндпоинт анонимный. Анонимный доступ включается на уровне портала отдельно; по умолчанию выключен.\n\n## Параметры\n\n| Параметр | Тип | Обяз. | Описание |\n|----------|-----|:-----:|---------|\n| `portalId` (path) | string (UUID) | да | Идентификатор портала в Вайбкод. Формат: `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`. Получить через `GET \u002Fv1\u002Fme` с ключом управления — поле `data.portals[n].id` |\n| `objectId` (path) | string (CUID) | да | Внутренний идентификатор объекта (поле `id` из ответов на запись и список) |\n\n## Примеры\n\n**Ключ не требуется.** Оба примера отправляются без заголовков авторизации — это анонимный эндпоинт.\n\n### curl\n\n```bash\ncurl -L \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fpublic-storage\u002FYOUR_PORTAL_ID\u002FYOUR_OBJECT_ID\"\n```\n\n### JavaScript\n\n```javascript\nconst res = await fetch(\n  'https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fpublic-storage\u002FYOUR_PORTAL_ID\u002FYOUR_OBJECT_ID',\n  { redirect: 'follow' }\n)\nif (!res.ok) {\n  const body = await res.json()\n  console.error(body.error.code, body.error.message)\n  return\n}\n\u002F\u002F res.url — финальный URL файла\n```\n\n## Ответ\n\nПоведение зависит от состояния анонимного доступа на портале:\n\n**Анонимный доступ включён на портале.** Сервер возвращает `302 Found` с заголовком `Location`, указывающим на временную ссылку хранилища. Ссылка действительна 10 минут. Заголовок ответа: `Cache-Control: private, no-store`.\n\n**Анонимный доступ выключен на портале** (значение по умолчанию для нового портала): `503 STORAGE_PUBLIC_GET_DISABLED_FOR_PORTAL`. Включается администратором портала.\n\n## Пример ответа при ошибке\n\n503 — анонимный доступ выключен на портале:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"STORAGE_PUBLIC_GET_DISABLED_FOR_PORTAL\",\n    \"message\": \"Public storage GET is disabled for this portal\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 404 | `STORAGE_OBJECT_NOT_FOUND` | Объект не найден, имеет видимость `PRIVATE`, принадлежит другому порталу, или `objectId` не совпадает ни с одним объектом |\n| 410 | `STORAGE_OBJECT_DELETED` | Объект был удалён |\n| 429 | `STORAGE_RATE_LIMIT_EXCEEDED` | Превышен лимит 60 запросов в минуту с одного IP-адреса |\n| 503 | `STORAGE_PUBLIC_GET_DISABLED_FOR_PORTAL` | Анонимный доступ выключен на данном портале |\n| 503 | `STORAGE_FEATURE_DISABLED` | Хранилище временно недоступно на платформе |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\n- **Анонимный доступ включается отдельно.** Объект с видимостью `PUBLIC` не становится автоматически доступным через этот эндпоинт — администратор портала должен включить анонимный доступ в настройках хранилища.\n- **`objectId` — внутренний идентификатор, не логический ключ.** Используйте поле `id` из ответа на загрузку ([`POST \u002Fv1\u002Fstorage\u002Fobjects\u002Fupload`](\u002Fdocs\u002Fstorage\u002Fupload)) или из [списка объектов](\u002Fdocs\u002Fstorage\u002Fobjects\u002Flist).\n- **Не кешируйте адрес перенаправления** — новая временная ссылка формируется при каждом запросе.\n\n## Смотрите также\n\n- [Публичный доступ HEAD](\u002Fdocs\u002Fstorage\u002Fobjects\u002Fpublic-head) — `HEAD \u002Fv1\u002Fpublic-storage\u002F:portalId\u002F:objectId`\n- [Получить объект (авторизованный)](\u002Fdocs\u002Fstorage\u002Fobjects\u002Fget) — `GET \u002Fv1\u002Fstorage\u002Fobjects\u002F:key`\n- [Список объектов](\u002Fdocs\u002Fstorage\u002Fobjects\u002Flist) — `GET \u002Fv1\u002Fstorage\u002Fobjects`\n- [Удалить объект](\u002Fdocs\u002Fstorage\u002Fobjects\u002Fdelete) — `DELETE \u002Fv1\u002Fstorage\u002Fobjects\u002F:key`\n","2026-07-07",{}]