# URL de téléversement signée

**POST** `/v1/utils/S3signedUploadURL`

Génère des URL S3 PUT pré-signées temporaires pour téléverser des fichiers directement dans le stockage cloud.

Le corps de la requête doit contenir un tableau `files` non vide. Chaque élément nécessite `name` et le type MIME `type`, par exemple :

```json
{"files":[{"name":"video.mp4","type":"video/mp4"}]}
```

N’envoyez pas `{ "urls": [...] }` ici : cette forme est réservée à l’endpoint de téléchargement signé `POST /v1/utils/S3signedGetURL`.

Après réception de `signedUrl` et `fileUri`, envoyez les octets bruts du fichier à `signedUrl` par HTTP `PUT` en utilisant le même `Content-Type` que lors de la demande de l’URL. N’envoyez pas le jeton Bearer Tradly à S3. Enregistrez `fileUri` dans les champs média de l’annonce ; vous pouvez créer un enregistrement `/v1/media` pour organiser le fichier dans Media Manager.

Les champs média d’une annonce peuvent également contenir des URL externes d’images ou de vidéos. Ces URL ne téléversent ni ne stockent les octets du fichier chez Tradly. Si une requête valide renvoie une erreur HTTP 5xx, il s’agit d’un échec côté serveur du téléversement ou de la signature, pas d’un périmètre manquant. Vérifiez la réponse et les journaux du serveur API. Les URL média externes restent une solution possible lorsque le téléversement hébergé est indisponible.

### Champs de la réponse

**result** Tableau d’éléments de téléversement contenant `fileUri` (URL permanente accessible du fichier) et `signedUrl` (lien S3 pré-signé temporaire).
