# Ffeiliau

Mae modelau sy’n derbyn delweddau, fideo neu sain yn eu derbyn ar unrhyw un o dair ffurf. Mae pob tudalen model yn nodi ei baramedrau ffeil (er enghraifft `image`, `images`, `videos`, `audios`).

## 1. URL cyhoeddus

Unrhyw URL `https://` (neu `http://`) y gall y model ei lawrlwytho:

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

Rhaid i’r ffeil fod yn hygyrch heb gwcis na mewngofnodi, a pharhau’n hygyrch nes bod y cais wedi dechrau. Mae pob tudalen model yn rhestru terfynau maint a dimensiynau ei baramedrau ffeil.

## 2. URI data

Gall ffeiliau bach fynd yn fewnol fel URI `data:` o hyd at 10 MB:

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

Mae Base64 yn gwneud y corff tua thraean yn fwy na’r ffeil, felly mae’n well defnyddio uwchlwythiadau ar gyfer unrhyw beth mawr.

## 3. Uwchlwythiad

Ar gyfer ffeiliau lleol, gofynnwch am URL uwchlwytho, `PUT`iwch y bytes yno, a phasiwch y `file_url` a ddychwelwyd i’r model. Mae creu’r URL uwchlwytho am ddim.

```bash 1 · Cael URL uwchlwytho
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 · uwchlwytho
{
  "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 · Uwchlwytho’r bytes gyda’r union benynnau a ddychwelwyd
curl -X PUT "<upload_url>" -H "Content-Type: image/jpeg" --data-binary @product.jpg
```

```bash 3 · Defnyddio file_url fel mewnbwn y model
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": "..."}'
```

- Uwchlwythiadau a gefnogir: `.jpg`, `.jpeg`, `.png`, `.webp` (hyd at 15 MB) a `.mp4`, `.mov`, `.webm` (hyd at 200 MB). Mae’r estyniad yn gosod y math; rhaid i `content_type` gyd-fynd ag ef.
- Mae’r URL uwchlwytho’n ddilys am awr. Mae’r `file_url` yn parhau’n ddilys.
- Ar gyfer sain, defnyddiwch URL cyhoeddus neu URI data.

## Ffeiliau allbwn

> [!TIP]
> Mae ffeiliau a gynhyrchir yn cael eu copïo i’n storio a’u dychwelyd yn `outputs[].url` fel dolenni ar `content.doitong.com`. Gallwch eu pasio’n syth i fodel arall, er enghraifft delwedd o fodel testun-i-ddelwedd i fodel delwedd-i-fideo.

Chi sy’n dewis pa mor hir y cedwir ffeiliau allbwn:

- **Am byth** (`permanent`, y rhagosodedig): tan i chi eu dileu, am 100 credydau API ($0.10) fesul GB y mis, wedi’u codi unwaith y dydd o falans yr API (1 GB = 1024³ bytes).
- **7 diwrnod** (`temporary`): am ddim, yna cânt eu dileu o’n storio.

Gosodwch y rhagosodiad gyda’r switsh "Cadw ffeiliau am byth" yn y [dangosfwrdd](https://doitong.com/developers/dashboard#balance) neu gyda `PATCH /account/storage`, a’i ddiystyru fesul rhediad gyda `?storage=temporary` (neu `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"}'
```

Mae pob cais yn dangos ei `storage` ei hun (`mode`, `bytes`, `expires_at`, `expired`). Mae’r gosodiad yn berthnasol i geisiadau newydd; mae ffeiliau rydych eisoes yn eu cadw am byth yn aros nes i chi eu dileu gyda `DELETE /requests/{id}/files` (gweler [Ceisiadau](https://doitong.com/developers/docs/requests#delete-files)). Os na all balans yr API dalu am storio, cewch e-bost a 30 diwrnod i wneud ychwanegiad cyn i’r ffeiliau a gedwir ddod yn rhai dros dro.
