# Файлдар

Кескін, бейне немесе аудионы қабылдайтын модельдер оларды үш пішімнің кез келгенінде қабылдайды. Әр модель бетінде оның файл
параметрлері (мысалы, `image`, `images`, `videos`, `audios`) көрсетіледі.

## 1. Жалпыға қолжетімді URL

Модель жүктей алатын кез келген `https://` (немесе `http://`) URL:

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

Файл cookie немесе жүйеге кіруді талап етпей қолжетімді болуы және сұрау басталғанға дейін қолжетімді болып тұруы керек. Әр модель
бетінде оның файл параметрлерінің өлшемі мен өлшем шектеулері көрсетіледі.

## 2. Деректер URI-і

Көлемі 10 MB-қа дейінгі шағын файлдарды `data:` URI ретінде тікелей қосуға болады:

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

Base64 денені файлдан шамамен үштен біріне үлкейтеді, сондықтан көлемді файлдар үшін жүктеп салуды таңдаңыз.

## 3. Жүктеп салу

Жергілікті файлдар үшін жүктеп салу URL мекенжайын сұраңыз, байттарды оған `PUT` арқылы жіберіңіз және қайтарылған `file_url` мәнін модельге беріңіз.
Жүктеп салу URL мекенжайын жасау тегін.

```bash 1 · Жүктеп салу 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 · жүктеп салу
{
  "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 · Байtтарды дәл қайтарылған тақырыптармен жүктеп салу
curl -X PUT "<upload_url>" -H "Content-Type: image/jpeg" --data-binary @product.jpg
```

```bash 3 · file_url мәнін модель кірісі ретінде пайдалану
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": "..."}'
```

- Қолдау көрсетілетін жүктеулер: `.jpg`, `.jpeg`, `.png`, `.webp` (15 MB-қа дейін) және `.mp4`, `.mov`, `.webm` (200 MB-қа дейін).
  Кеңейтім түрді анықтайды; `content_type` оған сәйкес келуі керек.
- Жүктеп салу URL мекенжайы бір сағат жарамды. `file_url` жарамдылығын сақтайды.
- Аудио үшін жалпыға қолжетімді URL немесе деректер URI-ін пайдаланыңыз.

## Шығыс файлдары

> [!TIP]
> Жасалған файлдар сақтау орнына көшіріліп, `outputs[].url` ішінде `content.doitong.com` сайтындағы сілтемелер ретінде қайтарылады. Оларды тікелей басқа модельге бере аласыз, мысалы, мәтіннен кескін жасайтын модель шығарған кескінді кескіннен бейне жасайтын модельге.

Шығыс файлдарының қанша уақыт сақталатынын өзіңіз таңдайсыз:

- **Мәңгі** (`permanent`, әдепкі мән): оларды өшіргенге дейін, айына әр GB үшін 100 API кредиттері
  (0,10 $), төлем тәулігіне бір рет API теңгерімінен алынады (1 GB = 1024³ bytes).
- **7 күн** (`temporary`): тегін, кейін сақтау орнымыздан өшіріледі.

Әдепкі мәнді [басқару тақтасындағы](https://doitong.com/developers/dashboard#balance) "Файлдарды мәңгілікке сақтау" ауыстырып-қосқышы арқылы немесе
`PATCH /account/storage` көмегімен орнатыңыз, ал әр іске қосу үшін `?storage=temporary` (немесе `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"}'
```

Әр сұрауда өзінің `storage` мәні (`mode`, `bytes`, `expires_at`, `expired`) көрсетіледі. Бұл параметр жаңа сұрауларға қолданылады;
мәңгі сақтауды таңдаған файлдар `DELETE /requests/{id}/files` арқылы өшірілгенге дейін сақталады (толығырақ
[Сұраулар](https://doitong.com/developers/docs/requests#delete-files) бөлімінде). Егер API теңгерімі сақтау орнының ақысын төлеуге жетпесе, сізге электрондық хат келеді
және сақталған файлдар уақытша болмас бұрын теңгерімді толықтыруға 30 күн беріледі.
