# Αρχεία

Τα μοντέλα που δέχονται εικόνες, βίντεο ή ήχο τα αποδέχονται σε μία από τρεις μορφές. Κάθε σελίδα μοντέλου επισημαίνει τις παραμέτρους αρχείων του (για παράδειγμα `image`, `images`, `videos`, `audios`).

## 1. Δημόσια διεύθυνση URL

Οποιαδήποτε διεύθυνση URL `https://` (ή `http://`) που μπορεί να κατεβάσει το μοντέλο:

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

Το αρχείο πρέπει να είναι προσβάσιμο χωρίς cookies ή σύνδεση και να παραμένει προσβάσιμο μέχρι να ξεκινήσει το αίτημα. Κάθε σελίδα μοντέλου παραθέτει τα όρια μεγέθους και διαστάσεων των παραμέτρων αρχείων του.

## 2. URI δεδομένων

Μικρά αρχεία μπορούν να ενσωματωθούν ως URI `data:` έως 10 MB:

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

Η Base64 αυξάνει το σώμα περίπου κατά ένα τρίτο σε σχέση με το αρχείο, επομένως προτιμήστε μεταφορτώσεις για οτιδήποτε μεγάλο.

## 3. Μεταφόρτωση

Για τοπικά αρχεία, ζητήστε μια διεύθυνση URL μεταφόρτωσης, κάντε `PUT` τα byte εκεί και περάστε το επιστρεφόμενο `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 · Μεταφόρτωση των byte με ακριβώς τις επιστρεφόμενες κεφαλίδες
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³ byte).
- **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 δεν μπορεί να πληρώσει την αποθήκευση, λαμβάνετε email και έχετε 30 ημέρες για φόρτιση πριν τα διατηρούμενα αρχεία γίνουν προσωρινά.
