# Signierte Upload-URL

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

Erzeugt temporäre vorsignierte S3-PUT-URLs, damit Dateien direkt in den Cloud-Speicher hochgeladen werden können.

Der Anfrageinhalt muss ein nicht leeres `files`-Array enthalten. Jeder Eintrag benötigt `name` und den MIME-Typ `type`, zum Beispiel:

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

Senden Sie hier nicht `{ "urls": [...] }`; diese Struktur gehört zum signierten Download-Endpunkt `POST /v1/utils/S3signedGetURL`.

Senden Sie nach Erhalt von `signedUrl` und `fileUri` die unveränderten Dateidaten per HTTP `PUT` an `signedUrl` und verwenden Sie denselben `Content-Type` wie bei der URL-Anfrage. Senden Sie das Tradly-Bearer-Token nicht an S3. Speichern Sie `fileUri` in den Medienfeldern des Angebots. Optional können Sie einen `/v1/media`-Eintrag zur Organisation in Media Manager erstellen.

Medienfelder von Angeboten können auch externe Bild- oder Video-URLs enthalten. Diese URLs laden die Dateidaten nicht zu Tradly hoch und speichern sie dort nicht. Wenn eine gültige Anfrage HTTP 5xx zurückgibt, ist dies ein serverseitiger Upload- oder Signierungsfehler und kein fehlender Berechtigungsbereich. Prüfen Sie Antwort und API-Serverprotokolle. Externe Medien-URLs bleiben eine Option, solange gehostete Uploads nicht verfügbar sind.

### Antwortfelder

**result** Array mit Upload-Einträgen: `fileUri` (dauerhafte zugängliche Datei-URL) und `signedUrl` (temporärer vorsignierter S3-Uploadlink).
