# Failai

Modeliai, priimantys vaizdus, vaizdo įrašus arba garsą, juos priima vienu iš trijų būdų. Kiekvieno modelio puslapyje
pažymėti jo failų parametrai (pavyzdžiui, `image`, `images`, `videos`, `audios`).

## 1. Viešas URL

Bet kuris `https://` (arba `http://`) URL, kurį modelis gali atsisiųsti:

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

Failas turi būti pasiekiamas be slapukų ar prisijungimo ir išlikti pasiekiamas, kol užklausa bus pradėta vykdyti. Kiekvieno modelio
puslapyje pateikiami jo failų parametrų dydžio ir matmenų apribojimai.

## 2. Duomenų URI

Maži failai gali būti įterpti kaip iki 10 MB dydžio `data:` URI:

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

Dėl Base64 turinys tampa maždaug trečdaliu didesnis už failą, todėl dideliems failams rinkitės įkėlimą.

## 3. Įkėlimas

Vietiniams failams paprašykite įkėlimo URL, nusiųskite baitus naudodami `PUT`, tada perduokite modeliui grąžintą `file_url`.
Įkėlimo URL sukūrimas yra nemokamas.

```bash 1 · Gauti įkėlimo URL
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 · įkėlimas
{
  "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 · Įkelti baitus naudojant tiksliai grąžintas antraštes
curl -X PUT "<upload_url>" -H "Content-Type: image/jpeg" --data-binary @product.jpg
```

```bash 3 · Naudoti file_url kaip modelio įvestį
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": "..."}'
```

- Palaikomi įkėlimai: `.jpg`, `.jpeg`, `.png`, `.webp` (iki 15 MB) ir `.mp4`, `.mov`, `.webm` (iki 200 MB).
  Plėtinys nustato tipą; `content_type` turi jį atitikti.
- Įkėlimo URL galioja vieną valandą. `file_url` lieka galioti.
- Garsui naudokite viešą URL arba duomenų URI.

## Išvesties failai

> [!TIP]
> Sugeneruoti failai nukopijuojami į mūsų saugyklą ir grąžinami `outputs[].url` kaip nuorodos į `content.doitong.com`. Juos galite
> tiesiogiai perduoti kitam modeliui, pavyzdžiui, vaizdą iš teksto į vaizdą modelio — vaizdo įrašo iš vaizdo modelio modeliui.

Jūs pasirenkate, kiek laiko saugoti išvesties failus:

- **Neribotą laiką** (`permanent`, numatytasis): kol juos ištrinsite, už 100 API kreditų
  (0,10 $) už GB per mėnesį, mokestį kartą per dieną nuskaičiuojant iš API likučio (1 GB = 1024³ baitai).
- **7 dienas** (`temporary`): nemokamai, tada ištrinami iš mūsų saugyklos.

Nustatykite numatytąją reikšmę naudodami jungiklį „Saugoti failus neribotą laiką“ [valdymo skydelyje](https://doitong.com/developers/dashboard#balance) arba
`PATCH /account/storage`, o vykdymui nepaisykite šios nuostatos naudodami `?storage=temporary` (arba `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"}'
```

Kiekvienoje užklausoje rodoma jos `storage` (`mode`, `bytes`, `expires_at`, `expired`). Nuostata taikoma naujoms užklausoms;
failai, kuriuos jau saugote neribotą laiką, lieka tol, kol juos ištrinsite naudodami `DELETE /requests/{id}/files` (žr.
[Užklausos](https://doitong.com/developers/docs/requests#delete-files)). Jei API likučio nepakanka saugyklai apmokėti, gaunate el. laišką
ir 30 dienų papildyti likutį, kol saugomi failai taps laikini.
