Compare commits
2 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
80c72e1d5f | ||
|
|
5f29ef23a2 |
1 changed files with 97 additions and 0 deletions
|
|
@ -0,0 +1,97 @@
|
|||
|
||||
---
|
||||
|
||||
## Image Storage Service — API
|
||||
|
||||
### POST `/upload`
|
||||
|
||||
Загрузка изображения как файла.
|
||||
|
||||
**Параметры запроса:**
|
||||
|
||||
* `file` — файл изображения (multipart/form-data, обязательный)
|
||||
* `subdir` — подкаталог хранения (query, необязательный, по умолчанию `posters`)
|
||||
|
||||
**Ответ:**
|
||||
|
||||
```json
|
||||
{
|
||||
"path": "posters/ab/cd/<sha1>.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/<sha1>.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/<sha1>.jpg`)
|
||||
|
||||
**Ответы:**
|
||||
|
||||
* `200 OK` — файл
|
||||
* `404 Not Found` — файл не найден
|
||||
|
||||
**Пример:**
|
||||
|
||||
```bash
|
||||
curl http://localhost:8000/posters/ab/cd/<sha1>.jpg --output image.jpg
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Формат ответа
|
||||
|
||||
Все write-эндпоинты (`POST`) возвращают объект:
|
||||
|
||||
```json
|
||||
{
|
||||
"path": "<relative_path>"
|
||||
}
|
||||
```
|
||||
|
||||
Этот `path` используется для последующего доступа через `GET /{path}`.
|
||||
Loading…
Add table
Add a link
Reference in a new issue