# Soubory

Modely, které přijímají obrázky, video nebo zvuk, je podporují v kterékoli ze tří forem. Každá stránka modelu označuje jeho parametry souborů (například `image`, `images`, `videos`, `audios`).

## 1. Veřejná URL

Libovolná URL `https://` (nebo `http://`), ze které může model stahovat:

```json
{ "image": "https://example.com/photos/product.jpg" }
```

Soubor musí být dostupný bez cookies nebo přihlášení a musí zůstat dostupný, dokud požadavek nezačne. Každá stránka modelu uvádí limity velikosti a rozměrů jeho parametrů souborů.

## 2. URI dat

Malé soubory lze vložit přímo jako URI `data:` o velikosti až 10 MB:

```json
{ "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..." }
```

Base64 zvětší tělo přibližně o třetinu oproti souboru, proto u čehokoli většího preferujte nahrávání.

## 3. Nahrání

U místních souborů si vyžádejte URL pro nahrání, proveďte `PUT` bajtů na tuto URL a předejte modelu vrácené `file_url`. Vytvoření URL pro nahrání je zdarma.

```bash 1 · Získat URL pro nahrání
curl -X POST "https://api.doitong.com/v1/files" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"filename": "product.jpg", "content_type": "image/jpeg", "size": 482113}'
```

```json 201 Created · nahrání
{
  "object": "upload",
  "upload_url": "https://…signed upload URL…",
  "file_url": "https://content.doitong.com/…/product.jpg",
  "method": "PUT",
  "headers": { "Content-Type": "image/jpeg" },
  "content_type": "image/jpeg",
  "expires_in": 3600,
  "max_bytes": 15728640
}
```

```bash 2 · Nahrát bajty přesně s vrácenými hlavičkami
curl -X PUT "<upload_url>" -H "Content-Type: image/jpeg" --data-binary @product.jpg
```

```bash 3 · Použít file_url jako vstup modelu
curl -X POST "https://api.doitong.com/v1/run/{model_id}?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"image": "https://content.doitong.com/…/product.jpg", "prompt": "..."}'
```

- Podporovaná nahrání: `.jpg`, `.jpeg`, `.png`, `.webp` (až 15 MB) a `.mp4`, `.mov`, `.webm` (až 200 MB). Přípona určuje typ; `content_type` jí musí odpovídat.
- URL pro nahrání je platná jednu hodinu. `file_url` zůstává platná.
- Pro zvuk použijte veřejnou URL nebo URI dat.

## Výstupní soubory

> [!TIP]
> Vygenerované soubory se zkopírují do našeho úložiště a vracejí se v `outputs[].url` jako odkazy na `content.doitong.com`. Můžete je přímo předat jinému modelu, například obrázek z modelu text-to-image modelu image-to-video.

Zvolíte si, jak dlouho se výstupní soubory uchovávají:

- **Navždy** (`permanent`, výchozí): dokud je nesmažete, za 100 API kreditů (0,10 $) za GB měsíčně, účtováno jednou denně ze zůstatku API (1 GB = 1024³ bajtů).
- **7 dní** (`temporary`): zdarma, poté smazáno z našeho úložiště.

Výchozí hodnotu nastavte přepínačem „Uchovávat soubory navždy“ v [dashboardu](https://doitong.com/developers/dashboard#balance) nebo pomocí `PATCH /account/storage` a pro jednotlivé spuštění ji přepište pomocí `?storage=temporary` (nebo `permanent`):

```bash
curl -X PATCH "https://api.doitong.com/v1/account/storage" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"mode": "temporary"}'
```

Každý požadavek zobrazuje vlastní `storage` (`mode`, `bytes`, `expires_at`, `expired`). Nastavení se týká nových požadavků; soubory, které již uchováváte navždy, zůstanou, dokud je nesmažete pomocí `DELETE /requests/{id}/files` (viz [Požadavky](https://doitong.com/developers/docs/requests#delete-files)). Pokud zůstatek API nemůže úložiště zaplatit, obdržíte e-mail a 30 dní na dobití, než se uchovávané soubory stanou dočasnými.
