# Tiedostot

Kuvia, videoita tai ääntä vastaanottavat mallit hyväksyvät ne kolmessa muodossa. Kunkin mallin sivulla ilmoitetaan sen tiedostoparametrit (esimerkiksi `image`, `images`, `videos`, `audios`).

## 1. Julkinen URL-osoite

Mikä tahansa `https://`- (tai `http://`-) URL-osoite, jonka malli voi ladata:

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

Tiedoston on oltava käytettävissä ilman evästeitä tai kirjautumista ja pysyttävä käytettävissä, kunnes pyyntö on käynnistynyt. Kunkin mallin sivulla luetellaan sen tiedostoparametrien koko- ja mittarajoitukset.

## 2. Data-URI

Pienet tiedostot voidaan sisällyttää suoraan enintään 10 Mt:n `data:`-URI-osoitteena:

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

Base64 kasvattaa rungon noin kolmanneksen tiedostoa suuremmaksi, joten suosi latauksia suurille tiedostoille.

## 3. Lataus

Paikallisia tiedostoja varten pyydä lataus-URL-osoite, lähetä tavut sinne `PUT`-pyynnöllä ja välitä palautettu `file_url` mallille. Lataus-URL-osoitteen luominen on maksutonta.

```bash 1 · Hae lataus-URL-osoite
curl -X POST "https://api.doitong.ru/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 · lataus
{
  "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 · Lataa tavut käyttäen täsmälleen palautettuja otsakkeita
curl -X PUT "<upload_url>" -H "Content-Type: image/jpeg" --data-binary @product.jpg
```

```bash 3 · Käytä file_url-arvoa mallin syötteenä
curl -X POST "https://api.doitong.ru/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": "..."}'
```

- Tuetut lataukset: `.jpg`, `.jpeg`, `.png`, `.webp` (enintään 15 Mt) sekä `.mp4`, `.mov`, `.webm` (enintään 200 Mt). Tiedostopääte määrittää tyypin; `content_type`-arvon on vastattava sitä.
- Lataus-URL-osoite on voimassa yhden tunnin. `file_url` pysyy voimassa.
- Käytä ääntä varten julkista URL-osoitetta tai data-URIa.

## Tulostetiedostot

> [!TIP]
> Luodut tiedostot kopioidaan tallennustilaamme ja palautetaan `outputs[].url`-kentässä `content.doitong.com`-osoitteiden linkkeinä. Voit välittää ne suoraan toiselle mallille, esimerkiksi tekstistä kuvaksi -mallin luoman kuvan kuvasta videoksi -mallille.

Valitset, kuinka kauan tulostetiedostoja säilytetään:

- **Ikuisesti** (`permanent`, oletus): kunnes poistat ne, 100 API-krediittiä (0,10 $) gigatavua kohti kuukaudessa, veloitetaan kerran päivässä API-saldosta (1 GB = 1024³ tavua).
- **7 päivää** (`temporary`): maksuton, minkä jälkeen poistetaan tallennustilastamme.

Määritä oletus "Säilytä tiedostot ikuisesti"-kytkimellä [hallintapaneelissa](https://doitong.com/developers/dashboard#balance) tai komennolla `PATCH /account/storage`, ja ohita se ajokohtaisesti komennolla `?storage=temporary` (tai `permanent`):

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

Jokainen pyyntö näyttää oman `storage`-objektinsa (`mode`, `bytes`, `expires_at`, `expired`). Asetus koskee uusia pyyntöjä; jo ikuisesti säilyttämäsi tiedostot säilyvät, kunnes poistat ne komennolla `DELETE /requests/{id}/files` (katso [Pyynnöt](https://doitong.com/developers/docs/requests#delete-files)). Jos API-saldo ei riitä tallennustilan maksamiseen, saat sähköpostin ja 30 päivää aikaa lisätä saldoa, ennen kuin säilytettävät tiedostot muutetaan väliaikaisiksi.
