Первый файл через File API за несколько шагов.
Создайте приложение, выпустите серверный ключ, проверьте подключение и загрузите файл. Дальше тот же File ID используется для чтения, замены содержимого, истории версий и выдачи.
Секретный ключ — только для серверной части.
Скопируйте секретный ключ из Workspace и храните его только в серверном окружении. Не помещайте его в JavaScript-код сайта, localStorage, пакет настольного или мобильного приложения или публичный репозиторий. Для прямой загрузки из браузера используйте отдельное короткоживущее разрешение.
1. Создайте Приложение
Откройте Workspace → Приложения. Укажите название — для первого файла стандартных разрешений достаточно. Рабочую или тестовую среду можно выбрать позднее. Среда находится внутри приложения и имеет собственные ключи доступа.
2. Создайте секретный ключ
Полный секрет показывается только при создании. Потерянный секрет не восстанавливается: выпускается новый ключ доступа, сервер переключается на него, после чего старый можно отозвать.
3. Проверьте подключение
Ответ покажет, к какому приложению и среде относится ключ и какие действия разрешены. API не возвращает идентификатор ключа и его секретную часть.
4. Загрузите первый файл
Для первой загрузки нужны только файл и ключ приложения. Всё остальное Pulse Media задаст безопасно: файл будет закрытым, а владельцем станет ваше приложение. Формат определяется по содержимому.
В ответ придут file_id — постоянный идентификатор файла — и
delivery_url — адрес для получения содержимого. Адрес закрытого файла
временный: когда он истечёт, запросите новый по file_id.
Дополнительно: привязка к вашей системе и безопасные повторы
Для рабочих сценариев задавайте Idempotency-Key: при повторе той же
операции с тем же ключом Pulse Media не создаст второй файл. Без этого заголовка
каждый новый запрос считается отдельной загрузкой — даже если повтор был после
сетевого сбоя. Пара заголовков владельца и тип ресурса нужны, только если хотите
связать файл с заказом, пользователем или другой сущностью вашей системы.
Если указываете владельца, нужны оба заголовка; незаполненная половина не принимается. Загрузка из браузера по короткому разрешению остаётся отдельным защищённым сценарием.
5. Получите тот же файл по File ID
Используем FILE_ID с предыдущего шага. Для автоматического извлечения ID в примере нужен jq.
Для закрытого файла чтение возвращает свежую временную подписанную ссылку. Не храните временный подписанный URL как основной идентификатор файла.
6. Заменяйте содержимое, не меняя File ID
Замена создаёт следующую неизменяемую версию и атомарно делает её текущей. Предыдущая успешная версия остаётся в истории.
7. Для браузера используйте короткоживущее разрешение
Сервер выдаёт ограниченное pulse_ug разрешение через
POST /v1/media/upload-grants. Браузер получает токен разрешения, точный URL загрузки и
созданный сервером ключ идемпотентности, после чего отправляет файл напрямую в Pulse Media.
браузер → ваш сервер → получить разрешение браузер ← pulse_ug + upload_url браузер → Pulse Media браузер ← file_id + ссылка
8. Подключите вебхук для событий о файлах
Доступные события: file.created, file.processed,
file.failed, file.deleted. Подписка относится к конкретным
приложению и среде. Подпись проверяется по исходному телу запроса.
9. SDK — короткий путь к тому же API
SDK для Node.js и PHP работают с тем же API. В Центре интеграции Workspace можно скачать набор SDK, совпадающий с установленной версией Pulse Media. Обычный cURL остаётся основным примером.