# Примеры cURL

> Примеры практических вызовов REST API MMW Cloud с помощью утилиты cURL.

Ниже приведены практические сценарии взаимодействия с REST API хранилища через командную строку.

## Просмотр списка файлов

Получение первых 10 файлов аккаунта с фильтрацией:

```bash
curl -s -H "Authorization: Bearer mmwc_0123456789abcdef_secretkeyhere" \
  "https://api.mmwcloud.tech/v1/files?limit=10&search=report"
```

## Проверка состояния квоты

Запрос текущего использования дискового пространства:

```bash
curl -s -H "Authorization: Bearer mmwc_0123456789abcdef_secretkeyhere" \
  https://api.mmwcloud.tech/v1/quota
```

## Загрузка небольшого файла

Загрузка файла размером до 8 МиБ выполняется в три этапа:

### 1. Получение тикета на загрузку

```bash
SIZE=$(stat -c %s document.pdf)
SHA=$(sha256sum document.pdf | cut -d" " -f1)

curl -s -X POST https://api.mmwcloud.tech/v1/files/upload-ticket \
  -H "Authorization: Bearer mmwc_0123456789abcdef_secretkeyhere" \
  -H "Content-Type: application/json" \
  -d "{\"name\": \"document.pdf\", \"size_bytes\": $SIZE, \"sha256\": \"$SHA\"}"
```

### 2. Передача бинарных данных по выданной ссылке

```bash
curl -s -X PUT "https://storage.mmwcloud.tech/v1/upload/file_01h8upload123?capability=token" \
  -H "Content-Type: application/octet-stream" \
  --data-binary @document.pdf
```

### 3. Фиксация завершения загрузки

```bash
curl -s -X POST https://api.mmwcloud.tech/v1/files/complete \
  -H "Authorization: Bearer mmwc_0123456789abcdef_secretkeyhere" \
  -H "Content-Type: application/json" \
  -d '{"id": "file_01h8upload123"}'
```

### 4. Проверка готовности файла

```bash
curl -s -H "Authorization: Bearer mmwc_0123456789abcdef_secretkeyhere" \
  https://api.mmwcloud.tech/v1/files/file_01h8upload123
```

## Получение ссылки и скачивание файла

### 1. Запрос временной ссылки на скачивание

```bash
curl -s -H "Authorization: Bearer mmwc_0123456789abcdef_secretkeyhere" \
  https://api.mmwcloud.tech/v1/files/file_01h8upload123/download
```

### 2. Скачивание содержимого

```bash
curl -s -o document.pdf \
  "https://storage.mmwcloud.tech/v1/download/file_01h8upload123?capability=token"
```

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

Мягкое удаление файла из хранилища:

```bash
curl -s -X DELETE https://api.mmwcloud.tech/v1/files/file_01h8upload123 \
  -H "Authorization: Bearer mmwc_0123456789abcdef_secretkeyhere"
```
