diff --git a/modules/image_storage/README.md b/modules/image_storage/README.md index e69de29..593040e 100644 --- a/modules/image_storage/README.md +++ b/modules/image_storage/README.md @@ -0,0 +1,96 @@ + +--- + +## Image Storage Service — API + +### POST `/upload` + +Загрузка изображения как файла. + +**Параметры запроса:** + +* `file` — файл изображения (multipart/form-data, обязательный) +* `subdir` — подкаталог хранения (query, необязательный, по умолчанию `posters`) + +**Ответ:** + +```json +{ + "path": "posters/ab/cd/.jpg" +} +``` + +**Пример:** + +```bash +curl -F "file=@poster.jpg" "http://localhost:8000/upload?subdir=posters" +``` + +--- + +### POST `/download-by-url` + +Скачивание изображения по URL и сохранение. + +**Тело запроса (JSON):** + +```json +{ + "url": "https://example.com/image.jpg", + "subdir": "posters" +} +``` + +`subdir` — необязательный, по умолчанию `posters`. + +**Ответ:** + +```json +{ + "path": "posters/ab/cd/.jpg" +} +``` + +**Пример:** + +```bash +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/.jpg`) + +**Ответы:** + +* `200 OK` — файл +* `404 Not Found` — файл не найден + +**Пример:** + +```bash +curl http://localhost:8000/posters/ab/cd/.jpg --output image.jpg +``` + +--- + +### Формат ответа + +Все write-эндпоинты (`POST`) возвращают объект: + +```json +{ + "path": "" +} +``` + +Этот `path` используется для последующего доступа через `GET /{path}`.