Авторизация

Используйте токен в заголовке Authorization: Bearer TOKEN или X-API-KEY: TOKEN для всех защищённых запросов. Введите токен ниже, чтобы получить доступ к галерее.

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

POST /upload

Загружает изображения с автоматической конвертацией в WebP. До 10 файлов, до 25 MB каждый. Параметр quality (1–100, по умолчанию 80) управляет степенью сжатия.

Multipart / Bearer
curl -X POST BASE_URL/upload \ -H "Authorization: Bearer $TOKEN" \ -F "file=@/path/to/photo1.jpg" \ -F "file=@/path/to/photo2.png" \ -F "folder=optional/subfolder" \ -F "quality=80"
Multipart / X-API-KEY
curl -X POST BASE_URL/upload \ -H "X-API-KEY: $TOKEN" \ -F "file=@/path/to/photo.jpg" \ -F "quality=60"
Response 201
{ "status": "uploaded", "count": 2, "files": [ { "filename": "photo1.webp", "url": "BASE_URL/load/photo1.webp" }, { "filename": "photo2.webp", "url": "BASE_URL/load/photo2.webp" } ] }

Загрузка (JSON / Base64)

POST /upload

Альтернативный способ загрузки через JSON с изображениями в Base64. Удобно для интеграции с n8n, Make и другими автоматизациями.

JSON / Bearer
curl -X POST BASE_URL/upload \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ --data '{ "folder": "optional/subfolder", "quality": 75, "images": [ "iVBORw0KGgoAAAANSUhEUg...", "/9j/4AAQSkZJRgABAQ..." ] }'

Получение файла

GET /load/{path}

Прямая ссылка на файл. Токен не требуется. Файлы кешируются браузером на 1 год.

CURL
curl -L "BASE_URL/load/subfolder/image.webp" -o image.webp

Удаление файла

DELETE /delete/{path}

Удаляет один файл по пути. Требуется токен авторизации.

CURL
curl -X DELETE "BASE_URL/delete/subfolder/image.webp" \ -H "Authorization: Bearer $TOKEN"
Response 200
{ "status": "deleted", "filename": "subfolder/image.webp" }

Массовое удаление

POST /delete-bulk

Удаляет несколько файлов за один запрос. Передайте массив путей в JSON.

CURL
curl -X POST "BASE_URL/delete-bulk" \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ --data '{ "files": [ "image1.webp", "subfolder/image2.webp" ] }'
Response 200
{ "status": "deleted", "deleted": ["image1.webp", "subfolder/image2.webp"], "not_found": [], "invalid": [], "count": 2 }