# קבצים

מודלים שמקבלים תמונות, וידאו או אודיו מקבלים אותם באחת משלוש צורות. בכל עמוד מודל מסומנים פרמטרי
הקובץ שלו (לדוגמה `image`, `images`, `videos`, `audios`).

## 1. כתובת URL ציבורית

כל כתובת URL מסוג `https://` (או `http://`) שהמודל יכול להוריד:

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

הקובץ חייב להיות נגיש ללא עוגיות או התחברות ולהישאר נגיש עד שהבקשה התחילה. בכל עמוד מודל מפורטות
מגבלות הגודל והמידות של פרמטרי הקבצים שלו.

## 2. URI של נתונים

אפשר להוסיף קבצים קטנים ישירות כ-URI מסוג `data:` בגודל של עד 10 MB:

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

Base64 מגדיל את גוף הבקשה בכשליש לעומת הקובץ, לכן העדף העלאות לכל דבר גדול.

## 3. העלאה

עבור קבצים מקומיים, בקש כתובת URL להעלאה, בצע `PUT` של הבתים אליה והעבר למודל את `file_url` שהוחזר.
יצירת כתובת URL להעלאה היא ללא עלות.

```bash 1 · קבלת כתובת URL להעלאה
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 · העלאה
{
  "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.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": "..."}'
```

- העלאות נתמכות: `.jpg`, `.jpeg`, `.png`, `.webp` (עד 15 MB) ו-`.mp4`, `.mov`, `.webm` (עד 200 MB).
  הסיומת קובעת את הסוג; `content_type` חייב להתאים לה.
- כתובת ה-URL להעלאה תקפה למשך שעה. `file_url` נשאר תקף.
- עבור אודיו, השתמש בכתובת URL ציבורית או ב-URI של נתונים.

## קובצי פלט

> [!TIP]
> קבצים שנוצרו מועתקים לאחסון שלנו ומוחזרים ב-`outputs[].url` כקישורים אל `content.doitong.com`. אפשר
> להעביר אותם ישירות למודל אחר, לדוגמה תמונה ממודל text-to-image למודל image-to-video.

אתה בוחר כמה זמן קובצי הפלט יישמרו:

- **לצמיתות** (`permanent`, ברירת המחדל): עד שתמחק אותם, תמורת 100 קרדיטי API
  (⁨‏0.10 ‏$⁩) לכל GB בחודש, בחיוב פעם ביום מיתרת ה-API (1 GB = 1024³ בתים).
- **7 ימים** (`temporary`): ללא עלות, ואז נמחקים מהאחסון שלנו.

הגדר את ברירת המחדל באמצעות המתג "שמירת קבצים לצמיתות" ב-[לוח הבקרה](https://doitong.com/developers/dashboard#balance) או באמצעות
`PATCH /account/storage`, ועקוף אותה בכל הרצה באמצעות `?storage=temporary` (או `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"}'
```

כל בקשה מציגה את `storage` שלה (`mode`, `bytes`, `expires_at`, `expired`). ההגדרה חלה על בקשות חדשות;
קבצים שכבר נשמרים אצלך לצמיתות יישארו עד שתמחק אותם באמצעות `DELETE /requests/{id}/files` (ראו
[בקשות](https://doitong.com/developers/docs/requests#delete-files)). אם יתרת ה-API אינה יכולה לשלם על האחסון, תישלח אליך הודעת דוא״ל
ויהיו לך 30 ימים לטעינה לפני שהקבצים הנשמרים יהפכו לזמניים.
