nyanimedb/modules/image_storage/README.md
2025-12-19 21:49:28 +03:00

1.8 KiB
Raw Blame History


Image Storage Service — API

POST /upload

Загрузка изображения как файла.

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

  • file — файл изображения (multipart/form-data, обязательный)
  • subdir — подкаталог хранения (query, необязательный, по умолчанию posters)

Ответ:

{
  "path": "posters/ab/cd/<sha1>.jpg"
}

Пример:

curl -F "file=@poster.jpg" "http://localhost:8000/upload?subdir=posters"

POST /download-by-url

Скачивание изображения по URL и сохранение.

Тело запроса (JSON):

{
  "url": "https://example.com/image.jpg",
  "subdir": "posters"
}

subdir — необязательный, по умолчанию posters.

Ответ:

{
  "path": "posters/ab/cd/<sha1>.jpg"
}

Пример:

curl -X POST "http://localhost:8000/download-by-url" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/image.jpg"}'

GET /{path:path}

Получение сохранённого файла по относительному пути.

Параметры:

  • path — относительный путь к файлу (например: posters/ab/cd/<sha1>.jpg)

Ответы:

  • 200 OK — файл
  • 404 Not Found — файл не найден

Пример:

curl http://localhost:8000/posters/ab/cd/<sha1>.jpg --output image.jpg

Формат ответа

Все write-эндпоинты (POST) возвращают объект:

{
  "path": "<relative_path>"
}

Этот path используется для последующего доступа через GET /{path}.