# فائلیں

وہ ماڈلز جو تصاویر، ویڈیو یا آڈیو لیتے ہیں، انہیں تین میں سے کسی بھی شکل میں قبول کرتے ہیں۔ ہر ماڈل صفحہ اپنے فائل
پیرامیٹرز (مثلاً `image`، `images`، `videos`، `audios`) کی نشان دہی کرتا ہے۔

## 1. عوامی URL

کوئی بھی `https://` (یا `http://`) URL جسے ماڈل ڈاؤن لوڈ کر سکے:

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

فائل cookies یا login کے بغیر قابل رسائی ہونی چاہیے، اور درخواست شروع ہونے تک قابل رسائی رہنی چاہیے۔ ہر ماڈل
صفحہ اپنے فائل پیرامیٹرز کے سائز اور dimension کی حدود درج کرتا ہے۔

## 2. data URI

چھوٹی فائلیں 10 MB تک کی `data:` URI کے طور پر inline بھیجی جا سکتی ہیں:

```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 · بالکل واپس ملنے والے ہیڈرز کے ساتھ بائٹس اپ لوڈ کریں
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 یا data URI استعمال کریں۔

## آؤٹ پٹ فائلیں

> [!TIP]
> تیار کردہ فائلیں ہمارے اسٹوریج میں کاپی کی جاتی ہیں اور `outputs[].url` میں `content.doitong.com` کے لنکس کے طور پر واپس آتی ہیں۔ آپ انہیں
> براہ راست کسی دوسرے ماڈل میں دے سکتے ہیں، مثلاً text-to-image ماڈل کی تصویر کو image-to-video ماڈل میں۔

آپ منتخب کرتے ہیں کہ آؤٹ پٹ فائلیں کتنی دیر رکھی جائیں:

- **ہمیشہ کے لیے** (`permanent`، ڈیفالٹ): جب تک آپ انہیں حذف نہ کریں، فی GB فی ماہ 100 API کریڈٹس
  (⁨$0.10⁩)، روزانہ ایک بار API بیلنس سے چارج کیے جائیں گے (1 GB = 1024³ bytes)۔
- **7 دن** (`temporary`): مفت، پھر ہمارے اسٹوریج سے حذف کر دی جائیں گی۔

[dashboard](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 بیلنس اسٹوریج کی ادائیگی نہ کر سکے تو آپ کو ای میل ملے گی
اور رکھی گئی فائلوں کے temporary بننے سے پہلے ٹاپ اَپ کے لیے 30 دن ملیں گے۔
