Files
quoter/docs/api-reference.md
Untone ea92a376ed
Some checks failed
CI / test (push) Failing after 4m0s
CI / lint (push) Failing after 4s
CI / deploy (push) Has been skipped
docs
2025-08-02 00:18:09 +03:00

3.5 KiB
Raw Blame History

API Reference

Обзор

Quoter предоставляет REST API для загрузки файлов, управления квотами и получения файлов с автоматической генерацией миниатюр.

Базовый URL

http://localhost:8080

Аутентификация

Все API endpoints (кроме получения файлов) требуют аутентификации через заголовок Authorization:

Authorization: Bearer <your-jwt-token>

Endpoints

1. Проверка состояния сервера

GET /

Проверяет работоспособность сервера.

Ответ:

200 OK
ok

2. Загрузка файлов

POST /

Загружает файл в S3 хранилище.

Заголовки:

Authorization: Bearer <token>
Content-Type: multipart/form-data

Параметры:

  • file - файл для загрузки

Ответ:

200 OK
filename.ext

Ошибки:

  • 401 Unauthorized - неверный токен
  • 413 Payload Too Large - превышена квота
  • 415 Unsupported Media Type - неподдерживаемый тип файла

3. Получение файлов

GET /{filename}

Получает файл по имени.

Параметры запроса:

  • s=<shout_id> - добавляет оверлей с данными shout (только для изображений)

Примеры:

GET /image.jpg
GET /image.jpg?s=123
GET /image_300.jpg
GET /image_300.jpg/webp

4. Управление квотами

GET /quota

Получает информацию о квоте пользователя.

Параметры запроса:

  • user_id - ID пользователя

Пример:

GET /quota?user_id=user123

Ответ:

{
  "user_id": "user123",
  "current_quota": 1073741824,
  "max_quota": 5368709120
}

POST /quota/increase

Увеличивает квоту пользователя.

Тело запроса:

{
  "user_id": "user123",
  "additional_bytes": 1073741824
}

Ответ:

{
  "user_id": "user123",
  "current_quota": 2147483648,
  "max_quota": 5368709120
}

POST /quota/set

Устанавливает квоту пользователя.

Тело запроса:

{
  "user_id": "user123",
  "new_quota_bytes": 2147483648
}

Ответ:

{
  "user_id": "user123",
  "current_quota": 2147483648,
  "max_quota": 5368709120
}

Коды ошибок

Код Описание
200 Успешный запрос
400 Неверные параметры запроса
401 Неавторизованный доступ
404 Файл не найден
413 Превышена квота
415 Неподдерживаемый тип файла
500 Внутренняя ошибка сервера

Примеры использования

Загрузка изображения

curl -X POST http://localhost:8080/ \
  -H "Authorization: Bearer your-token" \
  -F "file=@image.jpg"

Получение миниатюры

curl http://localhost:8080/image_300.jpg

Увеличение квоты

curl -X POST http://localhost:8080/quota/increase \
  -H "Authorization: Bearer your-token" \
  -H "Content-Type: application/json" \
  -d '{"user_id": "user123", "additional_bytes": 1073741824}'