REST API

Все возможности клиента доступны из API: авторизация по токену, потоковая chunked-загрузка с возобновлением, управление версиями и webhooks. Примеры кода ниже.

Авторизация

Все запросы отправляются на https://api.vaultix.example/v2 с заголовком Authorization: Bearer <token>. Токены можно создать в личном кабинете (не более 5 на тарифе Pro).

curl https://api.vaultix.example/v2/storage \
  -H 'Authorization: Bearer vx_live_...' \
  -H 'Content-Type: application/json'

Загрузка (chunked)

Частичная загрузка идёт в два шага: сначала создаётся сессия, затем отправляется каждая часть по отдельности. Порядок частей не важен; последняя часть закрывает сессию.

# 1. Создать сессию
POST /v2/uploads
{ "file": "backup-2025-01-15.sql", "size": 10737418240 }

# 2. Загрузить часть
PUT /v2/uploads/{id}/parts/{n}
[body: 8 МБ данных, шифрованных AES-256-GCM]

Возобновление

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

GET /v2/uploads/{id}
200
{
  "state": "open",
  "parts_uploaded": [1, 2, 3],
  "parts_total": 1310
}

Версии

История версий доступна для всех файлов. Восстановление — через указание нужной версии. Список версий фильтруется по диапазону дат.

GET /v2/files/{fileId}/versions?since=2025-01-01&until=2025-02-01
POST /v2/files/{fileId}/restore
{ "version": "v2025-01-15-05:00" }

Webhooks

Подпишитесь на события: загрузка завершена, ошибка, достигнут квотный лимит. Вы получите JSON с сигнатурой X-Vaultix-Signature.

POST /v2/hook
{ "url": "https://your.example/hook", "events": ["upload.finished","quota.warned"] }

Лимиты

API использует стандартный throttling по токену: 120 запросов в минуту на чтение, 30 на запись. Частичные загрузки учтываются отдельно и не расходуют запись-лимит.

429 Too Many Requests
{ "retry_after": 12 }   // секунд до следующей попытки