# Datoteke

Modeli, ki sprejemajo slike, video ali zvok, jih sprejemajo v eni od treh oblik. Vsaka stran modela označuje svoje parametre datotek (na primer `image`, `images`, `videos`, `audios`).

## 1. Javni URL

Kateri koli URL `https://` (ali `http://`), ki ga model lahko prenese:

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

Datoteka mora biti dosegljiva brez piškotkov ali prijave in ostati dosegljiva, dokler se zahteva ne začne. Vsaka stran modela navaja omejitve velikosti in dimenzij njegovih parametrov datotek.

## 2. Podatkovni URI

Majhne datoteke lahko vključite kot URI `data:`, velik do 10 MB:

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

Base64 poveča telo za približno tretjino glede na datoteko, zato za vse večje datoteke raje uporabite nalaganje.

## 3. Nalaganje

Za lokalne datoteke zahtevajte URL za nalaganje, vanj izvedite `PUT` z bajti in vrnjeni `file_url` posredujte modelu. Ustvarjanje URL-ja za nalaganje je brezplačno.

```bash 1 · Pridobite URL za nalaganje
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 · nalaganje
{
  "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 · Naložite bajte z natanko vrnjenimi glavami
curl -X PUT "<upload_url>" -H "Content-Type: image/jpeg" --data-binary @product.jpg
```

```bash 3 · Uporabite file_url kot vhod modela
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": "..."}'
```

- Podprta nalaganja: `.jpg`, `.jpeg`, `.png`, `.webp` (do 15 MB) in `.mp4`, `.mov`, `.webm` (do 200 MB). Končnica določa vrsto; `content_type` se mora ujemati z njo.
- URL za nalaganje velja eno uro. `file_url` ostane veljaven.
- Za zvok uporabite javni URL ali podatkovni URI.

## Izhodne datoteke

> [!TIP]
> Ustvarjene datoteke se kopirajo v našo shrambo in vrnejo v `outputs[].url` kot povezave na `content.doitong.com`. Neposredno jih lahko posredujete drugemu modelu, na primer sliko iz modela text-to-image modelu image-to-video.

Izberete, kako dolgo se izhodne datoteke hranijo:

- **Za vedno** (`permanent`, privzeto): dokler jih ne izbrišete, za 100 kreditov API (0,10 $) na GB na mesec, zaračunano enkrat dnevno od stanja API (1 GB = 1024³ bajtov).
- **7 dni** (`temporary`): brezplačno, nato se izbrišejo iz naše shrambe.

Privzeto nastavite s stikalom »Datoteke shrani za vedno« na [nadzorni plošči](https://doitong.com/developers/dashboard#balance) ali z `PATCH /account/storage`, za posamezno izvajanje pa preglasite z `?storage=temporary` (ali `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"}'
```

Vsaka zahteva prikazuje svojo `storage` (`mode`, `bytes`, `expires_at`, `expired`). Nastavitev velja za nove zahteve; datoteke, ki jih že hranite za vedno, ostanejo, dokler jih ne izbrišete z `DELETE /requests/{id}/files` (glejte [Zahteve](https://doitong.com/developers/docs/requests#delete-files)). Če stanje API ne more plačati shrambe, prejmete e-pošto in imate 30 dni za dopolnitev dobroimetja, preden shranjene datoteke postanejo začasne.
