> ## Documentation Index
> Fetch the complete documentation index at: https://docs.acedata.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# Przesyłanie plików do CDN platformy AceDataCloud

> Platform API guide - Ace Data Cloud

Prześlij lokalny plik do CDN platformy AceDataCloud, aby uzyskać publicznie dostępny adres URL (w stylu `https://cdn.acedata.cloud/xxxxxx.png`), który można natychmiast wykorzystać w parametrach takich jak `image_url`, `reference_url` itp. innych interfejsów biznesowych (np. Midjourney, Suno, Flux).

Odpowiednie scenariusze:

* Przed wywołaniem Midjourney `/midjourney/imagine` najpierw prześlij obraz referencyjny do CDN, aby uzyskać URL.
* Buforuj wideo wygenerowane w poprzednim kroku, aby użyć go jako danych wejściowych w następnym kroku.
* Tymczasowo hostuj materiały przesłane przez użytkowników, unikając budowania własnego S3.

> ℹ️ Ten interfejs należy do **API zarządzania platformą AceDataCloud** i używa jednolitego prefiksu `https://platform.acedata.cloud/api/v1/`.

## Przegląd interfejsu

| Element | Treść |
| - | - |
| Metoda | `POST` |
| URL | `https://platform.acedata.cloud/api/v1/files/` |
| Uwierzytelnianie | ✅ Wymagany token konta |
| Content-Type | `multipart/form-data` (**nie JSON**) |

## Informacje o uwierzytelnianiu (jak uzyskać token konta)

Nagłówek żądania:

```http theme={null}
Authorization: Bearer ${PLATFORM_TOKEN}
```

Sposób uzyskania: zaloguj się na [platformę AceDataCloud](https://platform.acedata.cloud) → [konsola Account Token](https://platform.acedata.cloud/console/platform-tokens) → kliknij przycisk „Utwórz”. Szczegóły znajdziesz w [Zarządzanie tokenami konta platformy AceDataCloud](https://platform.acedata.cloud/documents/platform-token).

## Treść żądania (multipart/form-data)

| Pole | Typ | Wymagane | Opis |
| - | - | - | - |
| `file` | file | ✅ | Binarny strumień pliku. **Domyślny limit pojedynczego pliku to 100 MB** |

## Przykłady żądań

### cURL

```shell theme={null}
curl -X POST 'https://platform.acedata.cloud/api/v1/files/' \
  -H 'accept: application/json' \
  -H "authorization: Bearer ${PLATFORM_TOKEN}" \
  -F 'file=@./photo.jpg'
```

### Python

```python theme={null}
import os
import requests

PLATFORM_TOKEN = os.environ["PLATFORM_TOKEN"]

with open("photo.jpg", "rb") as f:
    resp = requests.post(
        "https://platform.acedata.cloud/api/v1/files/",
        headers={
            "accept": "application/json",
            "authorization": f"Bearer {PLATFORM_TOKEN}",
        },
        files={"file": ("photo.jpg", f, "image/jpeg")},
        timeout=60,
    )

data = resp.json()
print(f"✅ Przesyłanie zakończone sukcesem: {data['file_url']}")
# Użyj bezpośrednio w innych interfejsach biznesowych:
# requests.post("https://api.acedata.cloud/midjourney/imagine",
#     json={"prompt": "...", "image_urls": [data["file_url"]]}, ...)
```

### Node.js

```javascript theme={null}
const fs = require('fs')
const FormData = require('form-data')

const form = new FormData()
form.append('file', fs.createReadStream('./photo.jpg'))

const r = await fetch('https://platform.acedata.cloud/api/v1/files/', {
  method: 'POST',
  headers: {
    authorization: `Bearer ${process.env.PLATFORM_TOKEN}`,
    ...form.getHeaders(),
  },
  body: form,
})
const data = await r.json()
console.log('CDN URL:', data.file_url)
```

## Przykład odpowiedzi (HTTP 200)

```json theme={null}
{
  "file_url": "https://cdn.acedata.cloud/qrd7gw.jpg"
}
```

Wystarczy bezpośrednio użyć pola `file_url` w innych interfejsach biznesowych — adres CDN jest obecnie publicznie dostępny i nie wymaga uwierzytelniania; nie należy traktować go jako gwarancji trwałego archiwum.

## Opis pól odpowiedzi

| Pole | Typ | Opis |
| - | - | - |
| `file_url` | string | URL dostępu do CDN |

## Obsługa błędów

| HTTP | Przykład odpowiedzi | Znaczenie |
| - | - | - |
| 400 | `{"error":"No file provided"}` | Nie dołączono pola `file` lub nazwa pola jest nieprawidłowa |
| 401 | Odpowiedź błędu uwierzytelniania DRF | Brakuje tokena konta lub użyto nieprawidłowego tokena |
| 413 | `{"error":"File too large","max_bytes":...}` | Plik przekracza 100 MB (domyślnie) |

## Praktyczne wskazówki

* **Przesyłanie obrazów jako obrazów referencyjnych**: Midjourney `image_urls`, Flux `image_url` i Veo `reference_url` akceptują adresy CDN, a **nie** base64. Uzyskanie URL najpierw za pomocą tego interfejsu jest standardową praktyką.
* **Nie przesyłaj wrażliwych danych**: zwrócony URL jest publicznie dostępny; okres przechowywania zależy od aktualnej polityki przechowywania platformy, a do długoterminowej archiwizacji użyj własnej pamięci obiektowej.
* **Przesyłanie dużych partii**: kontroluj współbieżność i ustawiaj limit czasu dla każdego przesyłania; przepustowość zależy od rozmiaru pliku i środowiska sieciowego.

## Powiązane interfejsy

* [Pobieranie listy usług platformy AceDataCloud](https://platform.acedata.cloud/documents/platform-service-list) — znajdź usługi biznesowe akceptujące dane wejściowe w postaci URL
* [Tworzenie poświadczeń API platformy AceDataCloud](https://platform.acedata.cloud/documents/platform-credential-create) — po przesłaniu pliku kolejnym krokiem jest zazwyczaj utworzenie poświadczeń do wywołania interfejsu biznesowego


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.