Ссылка для загрузки файла поступления

Выдаёт временную signed URL для PUT большого файла напрямую в Supabase Storage — без проксирования через API. Удобно для тяжёлых файлов и server-to-server интеграций internal-контура.

Выдаёт временную signed URL для PUT большого файла напрямую в Supabase Storage — без проксирования через API.

Зачем нужен метод

Выдаёт временную signed URL для PUT большого файла напрямую в Supabase Storage — без проксирования через API. Удобно для тяжёлых файлов и server-to-server интеграций internal-контура.

Когда использовать

Когда файл > нескольких МБ или клиент не поддерживает multipart через gateway.

Эндпоинт

POST /v1/internal/promo-code-incoming/upload-url

Аутентификация: JWT — заголовок Authorization: Bearer <token>. Пользователь должен иметь доступ к проекту и permission inventory_promo_codes.

Permission: inventory_promo_codes.import

Пример запроса

{
  "meta": { "requestId": "optional-uuid" },
  "data": { "projectId": "a1b2…", "incomingId": "f47ac10b-…", "fileName": "codes.xlsx", "fileSizeBytes": 5242880 }
}

Пример ответа

{
  "success": true,
  "data": {
    "incomingId": "f47ac10b-…",
    "uploadUrl": "https://supabase.promanta.ru/storage/v1/object/upload/sign/…",
    "uploadMethod": "PUT",
    "expiresAt": "2026-07-13T10:15:00Z",
    "maxFileSizeBytes": 52428800
  }
}

Ошибки

  • UNAUTHORIZED / ACCESS_DENIED — нет доступа
  • VALIDATION_ERROR — некорректное тело
  • NOT_FOUND — сущность не найдена
  • RATE_LIMIT_EXCEEDED (429) — превышен лимит

cURL

curl -X POST "https://api-external.promanta.ru/v1/internal/promo-code-incoming/upload-url" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_JWT" \
  -d '{"data": { "projectId": "a1b2…", "incomingId": "f47ac10b-…", "fileName": "codes.xlsx", "fileSizeBytes": 5242880 }}'

См. также

Оцените статью — нам важна ваша обратная связь.

0 (0 оценок)