> ## Documentation Index
> Fetch the complete documentation index at: https://apidocs.erlcrussia.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Интеграция с CDN

> Как подключить файлы команды к сайту, Next.js или CI/CD.

CDN хранит файлы команды и раздаёт их по публичным адресам. Управление — через API V3 с ключом, раздача файлов ключа не требует.

| Задача | Как сделать |
| - | - |
| Картинки, документы, видео | Загрузите через `POST /v3/cdn/assets` и используйте публичный адрес |
| Файл по ссылке | `POST /v3/cdn/assets/external` скачает его в CDN |
| Обычный HTML/CSS | Полные адреса CDN в `src`, `href` и `url()` |
| Next.js | [Инструкция для Next.js](https://apidocs.erlcrussia.com/ru/tutorials/nextjs-cdn-integration.md) |
| Свой домен | [Свои CDN-домены](https://apidocs.erlcrussia.com/ru/tutorials/cdn-custom-domains.md) |
| Релизы из CI/CD | [CI/CD и сброс кэша](https://apidocs.erlcrussia.com/ru/tutorials/cdn-cache-purge-cicd.md) |

## Доступ

Сначала привяжите ключ к команде:

```bash theme={null}
curl -X PUT https://api.erlcrussia.com/v3/cdn/team \
  -H 'erlcrussia-api-key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"teamId":"YOUR_TEAM_ID"}'
```

У владельца ключа должна быть роль в команде с доступом к CDN; членство проверяется при каждом запросе. Ключ передаётся только в заголовке `erlcrussia-api-key`.

## Адреса файлов

Каждый файл задаётся парой «пространство + путь». Пространство — slug команды или подтверждённый [свой домен](https://apidocs.erlcrussia.com/ru/tutorials/cdn-custom-domains.md).

* Общий домен: `https://cdn.erlcrussia.com/YOUR_TEAM_SLUG/images/logo.png`
* Свой домен: `https://files.example.com/images/logo.png`

На общем домене команде доступен только путь `/{slug}/...`. Если `path` не указан при загрузке, он создаётся автоматически по типу файла.

Если файл с таким `path` уже есть, ответ 409, а файл не перезаписывается. Для новых версий используйте новый путь.

## Папки

| Действие | Что происходит с файлами |
| - | - |
| Создание, переименование, удаление папки | Ничего: адреса файлов не меняются |
| `PATCH /cdn/assets` с `folderId` | Файл переносится в другую папку в интерфейсе |
| `PATCH /cdn/assets` с `path` | Файл получает новый адрес |
| Папка с `pathEnabled: true` | Новые загрузки без `path` получают префикс папки |

## Общие параметры

| Параметр | Значение |
| - | - |
| `domain` | Пространство. По умолчанию — пространство команды ключа |
| `ids` | ID файлов через запятую |
| `path` | Точный путь файла |
| `prefix` | Префикс пути для группы файлов |
| `folderId` | Папка: `root` — без папки, `all` — все |
| `page, limit` | Страницы списка, `limit` до 100 |

## Кэш

Ответ CDN содержит `X-Cache` (кэш CDN) и `CF-Cache-Status` (Cloudflare). Сброс кэша (`POST /cdn/assets/purge`) принимается сразу, а выполняется в фоне. Надёжнее публиковать новые версии по новым адресам, чем заменять старые файлы. Подробнее — в разделе [CI/CD и сброс кэша](https://apidocs.erlcrussia.com/ru/tutorials/cdn-cache-purge-cicd.md).

## Частые ответы

| Ответ | Что значит |
| - | - |
| 401, код 5007 | Нет ключа |
| 403, код 5009 | Нет доступа к CDN команды |
| 409, код 5135 | Путь уже занят |
| 429, код 5016 | Превышен лимит запросов |

Личные файлы пользователей сайта описаны в разделе [Личные файлы](https://apidocs.erlcrussia.com/ru/other/user-assets.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.