# Fájlok

A képet, videót vagy hangot fogadó modellek háromféle formátumban fogadják el ezeket. Az egyes modelloldalak megjelölik a fájlparamétereiket (például `image`, `images`, `videos`, `audios`).

## 1. Nyilvános URL

Bármely `https://` (vagy `http://`) URL, amelyről a modell le tudja tölteni a fájlt:

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

A fájlnak cookie és bejelentkezés nélkül is elérhetőnek kell lennie, és az elérhetőségét meg kell őriznie a kérés megkezdéséig. Az egyes modelloldalak felsorolják fájlparamétereik méret- és dimenziókorlátait.

## 2. Data URI

A kis fájlok legfeljebb 10 MB méretű `data:` URI-ként beágyazhatók:

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

A Base64 körülbelül egyharmadával növeli meg a törzs méretét a fájlhoz képest, ezért nagyobb fájlokhoz inkább feltöltést használj.

## 3. Feltöltés

Helyi fájlok esetén kérj feltöltési URL-t, `PUT` metódussal töltsd fel oda a bájtokat, majd add át a visszaadott `file_url` értéket a modellnek. A feltöltési URL létrehozása ingyenes.

```bash 1 · Feltöltési URL lekérése
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 · feltöltés
{
  "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 · A bájtok feltöltése pontosan a visszaadott fejlécekkel
curl -X PUT "<upload_url>" -H "Content-Type: image/jpeg" --data-binary @product.jpg
```

```bash 3 · A file_url használata modellbemenetként
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": "..."}'
```

- Támogatott feltöltések: `.jpg`, `.jpeg`, `.png`, `.webp` (legfeljebb 15 MB), valamint `.mp4`, `.mov`, `.webm` (legfeljebb 200 MB). A kiterjesztés határozza meg a típust; a `content_type` értékének egyeznie kell vele.
- A feltöltési URL egy órán át érvényes. A `file_url` továbbra is érvényes marad.
- Hang esetén használj nyilvános URL-t vagy data URI-t.

## Kimeneti fájlok

> [!TIP]
> A generált fájlok a tárhelyünkre kerülnek másolásra, és az `outputs[].url` értékében a `content.doitong.com` webhelyre mutató linkként jelennek meg. Közvetlenül átadhatod őket egy másik modellnek, például egy text-to-image modell által generált képet egy image-to-video modellnek.

Te választod ki, meddig maradjanak meg a kimeneti fájlok:

- **Örökre** (`permanent`, az alapértelmezett érték): amíg nem törlöd őket, 100 API-kreditért (0,10 $) GB-onként havonta, naponta egyszer az API-egyenlegből terhelve (1 GB = 1024³ bájt).
- **7 napig** (`temporary`): ingyenes, majd törlődik a tárhelyünkről.

Állítsd be az alapértelmezést a „Fájlok megőrzése örökre” kapcsolóval a [vezérlőpulton](https://doitong.com/developers/dashboard#balance), vagy a `PATCH /account/storage` használatával, és futtatásonként írd felül a `?storage=temporary` (vagy `permanent`) paraméterrel:

```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"}'
```

Minden kérés megjeleníti a saját `storage` objektumát (`mode`, `bytes`, `expires_at`, `expired`). A beállítás az új kérésekre vonatkozik; a már örökre megőrzött fájlok addig maradnak meg, amíg nem törlöd őket a `DELETE /requests/{id}/files` használatával (lásd: [Kérések](https://doitong.com/developers/docs/requests#delete-files)). Ha az API-egyenleg nem fedezi a tárhely költségét, e-mailt kapsz, és 30 napod lesz az egyenleg feltöltésére, mielőtt a megőrzött fájlok ideiglenessé válnak.
