Файловый backend для разработчиков

Подключите файловую инфраструктуру к приложению через один API.

Ваше приложение хранит File ID и бизнес-смысл файла. Pulse Media берёт на себя сами байты, версии, доступ, выдачу, прямую загрузку из браузера, техническую обработку и события. Production и Staging остаются изолированными средами одного приложения.

01
Приложение
идентификатор, права, лимит
в одном месте
02
Среда
Production / Staging
отдельный ключ
03
Файл
постоянный file_id + история версий
надёжный
04
Выдача и события
закрытый и публичный доступ + вебхуки
управляемый
File API

File ID остаётся. Содержимое может меняться.

File ID обозначает один и тот же файл в вашем продукте. При замене содержимого Pulse Media создаёт новую версию и делает её текущей, а предыдущая остаётся в истории. Версионность входит в файловый контракт платформы.

HTTPлогический файл
POST   /v1/media/files
GET    /v1/media/files/{file_id}
POST   /v1/media/files/{file_id}/replace
GET    /v1/media/files/{file_id}/versions
PATCH  /v1/media/files/{file_id}/visibility
DELETE /v1/media/files/{file_id}
Постоянный идентификатор

Один File ID

Ссылка в вашей базе данных не меняется при замене содержимого.

История

Неизменяемые версии

Предыдущие успешные версии остаются в истории до удаления самого файла.

Выдача

Постоянный публичный URL

Публичная ссылка может пережить замену содержимого без смены URL, который уже использует пользователь.

Среды

Production и Staging живут внутри одного приложения.

Production и Staging имеют отдельные ключи доступа и отдельный учёт использования. Среда определяется самим секретным ключом и сохраняется вместе с файловым контекстом.

Приложение
один идентификатор
Production
отдельный секретный ключ
Staging
отдельный секретный ключ
Разделение данных
изолировано
Прямая загрузка

Браузер загружает файл напрямую. Секретный ключ остаётся на сервере.

Сервер выдаёт короткоживущее разрешение на загрузку. Браузер получает токен разрешения, точный URL загрузки и созданный сервером Idempotency-Key. Разрешение действует только для согласованной операции.

СХЕМАсекрет остаётся на сервере
Browser
  → ваш сервер
      → POST /v1/media/upload-grants   Authorization: Bearer pulse_sk...
  ← pulse_ug + upload_url + idempotency_key
  → Pulse Media upload_url
  ← file_id + ссылка
События / Вебхуки

Изменения приходят событиями.

Вебхук относится к конкретным приложению и среде. Создание файла завершается независимо от доступности внешнего адреса: событие сохраняется в очередь, а доставка выполняется отдельно с повторными попытками.

file.created

Появился File ID

Логическая сущность создана.

событие
file.processed

Версия готова

Файл готов, технические сведения собраны.

событие
file.failed

Операция не завершилась

Можно обработать ошибку без постоянного опроса статуса.

событие
file.deleted

Логический файл удалён

Удаление файла зафиксировано.

событие
SDK

API остаётся основой. SDK сокращает повторяющийся код.

Node.js 20+ и PHP 8.1+ SDK скачиваются прямо из установленной версии Pulse Media, поэтому набор файлов соответствует API конкретного сервера.

Node.js

Без дополнительных зависимостей

Встроенные fetch, FormData, Blob и crypto. Загрузка файлов, прямая загрузка из браузера и проверка подписи вебхука.

PHP 8.1+

ext-curl + автономная автозагрузка

Тот же API, понятные ошибки и проверка HMAC-подписи вебхука по исходному телу запроса.

Ключи доступа

Ключ привязан к приложению, среде и набору прав.

Серверный ключ показывает, к какому приложению и окружению относится доступ. Полный секрет выдаётся при создании и хранится только на стороне сервера.

Главное правило

Секретный ключ приложения остаётся на сервере.

Для прямой загрузки из браузера или приложения используется ограниченное разрешение. Для серверной интеграции — ключ выбранной среды с минимально необходимыми правами.

Начать

Центр интеграции проводит от ключа до первого файла.

Выберите приложение и среду, выпустите секретный ключ, проверьте подключение, создайте файл, затем подключайте прямую загрузку и вебхуки только если они действительно нужны.