| .. | ||
| app | ||
| .gitignore | ||
| .python-version | ||
| pyproject.toml | ||
| README.md | ||
| uv.lock | ||
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}.