> ## 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.

# Télécharger des fichiers vers le CDN de la plateforme AceDataCloud

> Platform API guide - Ace Data Cloud

Téléchargez des fichiers locaux vers le CDN de la plateforme AceDataCloud, obtenez une URL publiquement accessible (au format `https://cdn.acedata.cloud/xxxxxx.png`), qui peut être immédiatement référencée dans les paramètres `image_url`, `reference_url`, etc. d'autres interfaces métier (telles que Midjourney, Suno, Flux).

Scénarios applicables :

* Avant d'appeler Midjourney `/midjourney/imagine`, téléchargez d'abord l'image de base vers le CDN pour obtenir l'URL.
* Mettez en cache la vidéo générée à l'étape précédente pour l'utiliser comme entrée de l'étape suivante.
* Hébergez temporairement les ressources téléchargées par les utilisateurs, afin d'éviter de créer votre propre S3.

> ℹ️ Cette interface appartient à l'**API de gestion de la plateforme AceDataCloud**, avec le préfixe unifié `https://platform.acedata.cloud/api/v1/`.

## Aperçu de l'interface

| Élément | Contenu |
| - | - |
| Méthode | `POST` |
| URL | `https://platform.acedata.cloud/api/v1/files/` |
| Authentification | ✅ Jeton de compte requis |
| Content-Type | `multipart/form-data`（**pas JSON**） |

## Instructions d'authentification (comment obtenir le jeton de compte)

En-tête de requête :

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

Méthode d'obtention : connectez-vous à la [plateforme AceDataCloud](https://platform.acedata.cloud) → [console Account Token](https://platform.acedata.cloud/console/platform-tokens) → cliquez sur le bouton « Créer ». Voir [Gérer les jetons de compte de la plateforme AceDataCloud](https://platform.acedata.cloud/documents/platform-token) pour plus de détails.

## Corps de la requête (multipart/form-data)

| Champ | Type | Requis | Description |
| - | - | - | - |
| `file` | file | ✅ | Flux de fichier binaire. **La limite par fichier est de 100 MB par défaut** |

## Exemples de requêtes

### 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"✅ 上传成功：{data['file_url']}")
# 直接用于其他业务接口：
# 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)
```

## Exemple de réponse (HTTP 200)

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

Il suffit de prendre le champ `file_url` et de l'utiliser dans d'autres interfaces métier — l'URL CDN est actuellement publiquement accessible et ne nécessite pas d'authentification ; ne la considérez pas comme une promesse d'archivage permanent.

## Description des champs de réponse

| Champ | Type | Description |
| - | - | - |
| `file_url` | string | URL d'accès CDN |

## Gestion des erreurs

| HTTP | Exemple de réponse | Signification |
| - | - | - |
| 400 | `{"error":"No file provided"}` | Le champ `file` n'est pas joint ou le nom du champ est incorrect |
| 401 | Réponse d'erreur d'authentification DRF | Jeton de compte manquant ou non valide |
| 413 | `{"error":"File too large","max_bytes":...}` | Le fichier dépasse 100 MB (par défaut) |

## Conseils pratiques

* **Télécharger une image comme image de base** : les `image_urls` de Midjourney, `image_url` de Flux et `reference_url` de Veo acceptent tous les URL CDN, et **n**'acceptent pas base64. Obtenir d'abord l'URL avec cette interface est une opération courante.
* **Ne téléchargez pas de données sensibles** : l'URL retournée est publiquement accessible ; la durée de conservation dépend de la politique de stockage actuelle de la plateforme, utilisez votre propre stockage d'objets pour l'archivage à long terme.
* **Téléchargements en grand volume** : contrôlez la concurrence et définissez un délai d'expiration pour chaque téléchargement ; le débit dépend de la taille des fichiers et de l'environnement réseau.

## Interfaces associées

* [Obtenir la liste des services de la plateforme AceDataCloud](https://platform.acedata.cloud/documents/platform-service-list) — trouver les services métier qui acceptent des entrées URL
* [Créer des identifiants API de la plateforme AceDataCloud](https://platform.acedata.cloud/documents/platform-credential-create) — après le téléchargement, l'étape suivante consiste généralement à créer des identifiants pour appeler les interfaces métier


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