Короткая ссылка на файл. Она живёт ограниченное время. Нужна, чтобы отдать картинку или запись другому сервису, не выкладывая файл в открытый доступ навсегда.
Scope
files:read
Заголовки
Content-Type: application/jsonX-Api-Key— ключ проекта
Получить ссылку на скачивание файла
POST /v1/files/get. Scope files:read.
Учебный пример магазина «Северная полка». Это не запись из вашей базы. Здесь файл: запрос и ответ на одном вызове.
Запрос
{
"data": {
"projectId": "11111111-1111-4111-8111-111111111111",
"bucket": "attachments",
"path": "projects/demo/kruzhka-emal.png"
}
}Ответ (успех, 200)
{
"success": true,
"data": {
"bucket": "attachments",
"path": "projects/demo/kruzhka-emal.png",
"url": "https://files.example/demo/kruzhka-emal.png",
"expiresInSeconds": 300
}
}Пример cURL
curl -X POST "https://api-external.brifly.online/v1/files/get" \
-H "Content-Type: application/json" \
-H "X-Api-Key: {{api_key}}" \
-d '{"data": {"projectId": "11111111-1111-4111-8111-111111111111", "bucket": "attachments", "path": "projects/demo/kruzhka-emal.png"}}'Ошибки
401INVALID_API_KEY— нет ключа или ключ отозван.403FORBIDDEN_SCOPE— у ключа нетfiles:read.403PROJECT_MISMATCH— в теле другой проект.429RATE_LIMIT_EXCEEDED— заголовокRetry-After.400VALIDATION_ERROR— не хватает поля вdata.
Ограничения
- Проект и пользователь берутся из ключа. Чужой
data.projectIdотвечает403PROJECT_MISMATCH.