# ਫ਼ਾਈਲਾਂ

ਚਿੱਤਰ, ਵੀਡੀਓ ਜਾਂ ਆਡੀਓ ਲੈਣ ਵਾਲੇ ਮਾਡਲ ਇਨ੍ਹਾਂ ਨੂੰ ਤਿੰਨ ਵਿੱਚੋਂ ਕਿਸੇ ਵੀ ਰੂਪ ਵਿੱਚ ਸਵੀਕਾਰ ਕਰਦੇ ਹਨ। ਹਰ ਮਾਡਲ ਪੰਨਾ ਆਪਣੇ ਫ਼ਾਈਲ
ਪੈਰਾਮੀਟਰ ਦਰਸਾਉਂਦਾ ਹੈ (ਉਦਾਹਰਨ ਲਈ `image`, `images`, `videos`, `audios`)।

## 1. ਇੱਕ ਜਨਤਕ URL

ਕੋਈ ਵੀ `https://` (ਜਾਂ `http://`) URL ਜਿਸਨੂੰ ਮਾਡਲ ਡਾਊਨਲੋਡ ਕਰ ਸਕਦਾ ਹੈ:

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

ਫ਼ਾਈਲ ਕੂਕੀਜ਼ ਜਾਂ ਲੌਗਇਨ ਤੋਂ ਬਿਨਾਂ ਪਹੁੰਚਯੋਗ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ ਅਤੇ ਬੇਨਤੀ ਸ਼ੁਰੂ ਹੋਣ ਤੱਕ ਪਹੁੰਚਯੋਗ ਰਹਿਣੀ ਚਾਹੀਦੀ ਹੈ। ਹਰ ਮਾਡਲ
ਪੰਨਾ ਆਪਣੇ ਫ਼ਾਈਲ ਪੈਰਾਮੀਟਰਾਂ ਲਈ ਆਕਾਰ ਅਤੇ ਮਾਪ ਦੀਆਂ ਸੀਮਾਵਾਂ ਦੱਸਦਾ ਹੈ।

## 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 · ਵਾਪਸ ਮਿਲੇ ਹੈਡਰਾਂ ਨਾਲ ਬਿਲਕੁਲ ਉਸੇ ਤਰ੍ਹਾਂ ਬਾਈਟਾਂ ਅਪਲੋਡ ਕਰੋ
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 ਦਿਨ ਮਿਲਦੇ ਹਨ।
