Was ist eine Medien-URL?

Eine Medien-URL identifiziert ein Bild, eine Video- oder Audiodatei, ein Manifest oder eine erzeugte Variante an einem Netzwerkendpunkt. Ihr Pfad und ihre Abfrageparameter können eine Quelldatei, eine Transformation oder eine Auslieferungsrichtlinie auswählen.

So funktionieren Medien-URLs

Eine Medien-URL ist die Adresse, über die ein Client eine Originaldatei, eine Variante, ein Segment oder ein Streaming-Manifest abruft. Der Server legt fest, was die einzelnen Teile bedeuten: Meist identifiziert der Pfad die Datei, während Abfrageparameter Transformationseinstellungen oder eine Signatur enthalten. Die URL legt das Format der Antwort nicht fest. Der HTTP-Header Content-Type gibt den Medientyp an. Die Dateiendung im Pfad entscheidet daher nicht darüber, was ein Client erhält. Andere Antwortheader steuern Caching, die Auslieferung von Bytebereichen und die ursprungsübergreifende Nutzung. Ein Streaming-Manifest fügt eine weitere Ebene hinzu, da es eine Datei mit weiteren URLs ist: Bei HLS wird eine relative URI innerhalb einer Playlist anhand der URL dieser Playlist aufgelöst. Die Manifest-URL bestimmt somit, wo ein Player nach Segmenten sucht.

Wichtige Fakten

  1. Ist der Abfragestring Teil des Cache-Schlüssels? Das hängt vom CDN und dessen Konfiguration ab. Prüfen Sie dies daher, bevor Sie dort Transformationsparameter unterbringen. Laut HTTP besteht ein Cache-Schlüssel mindestens aus der Anfragemethode und der Ziel-URI. Der Standardschlüssel von Cloudflare enthält die vollständige URL einschließlich Abfragestring. Der Standardschlüssel von Amazon CloudFront enthält nur den Domainnamen der Distribution und den URL-Pfad. Zwei URLs, die sich nur durch einen Parameter wie ?w= unterscheiden, liefern daher dasselbe zwischengespeicherte Objekt zurück, bis eine Cache-Richtlinie diesen Parameter zum Schlüssel hinzufügt. Das Hinzufügen eines Parameters, der die Antwort nicht verändert, hat den gegenteiligen Nachteil: CloudFront warnt, dass dadurch doppelte Objekte zwischengespeichert werden können und die Cache-Trefferquote sinken kann.
  2. Benötigt die URL einer Video- oder Audiodatei einen Server, der Bytebereiche unterstützt? Für das Springen auf der Zeitleiste unter iOS ja: Laut den archivierten Safari-Richtlinien von Apple müssen Server, die Mediendateien für iOS bereitstellen, Bytebereichsanfragen unterstützen. iOS nutzt diese für den wahlfreien Zugriff während der Wiedergabe. MDN beschreibt Bereichsanfragen allgemeiner als nützlich für Medienplayer, die wahlfreien Zugriff unterstützen. HTTP selbst sieht Bereichsanfragen als optional vor. Ein Server darf den Header Range ignorieren und mit 200 sowie der gesamten Datei antworten. Ein CDN kann eigene Bedingungen hinzufügen: CloudFront liefert das gesamte Objekt statt des angeforderten Bereichs zurück, wenn der Origin-Server mit Transfer-Encoding: chunked antwortet. Senden Sie eine Bereichsanfrage an die öffentliche URL, nicht nur an den Origin-Server, und erwarten Sie eine Antwort mit 206 sowie einem Header Content-Range.
  3. Was geschieht mit Segment-URLs, wenn die URL eines HLS-Manifests signiert ist? Eine Signatur im Abfragestring des Manifests wird nicht auf sie übertragen. Relative Segment-URIs werden anhand der Playlist-URL aufgelöst. Die standardmäßige Auflösung von URI-Referenzen behält dabei die Abfrage der relativen Referenz bei, nicht die der Basis-URL. Segmentanfragen treffen daher ohne Signatur ein, sofern die Playlist nicht für jeden Zuschauer neu geschrieben oder der Zugriff auf andere Weise gewährt wird. Die Dokumentation von Amazon CloudFront empfiehlt signierte Cookies statt signierter URLs, um Zugriff auf mehrere geschützte Dateien zu gewähren, und nennt als Beispiel sämtliche Dateien eines HLS-Videos.
  4. Können sich die Bytes hinter einer URL ändern? Falls ja, kann ein Cache mit der früheren Antwort diese weiterhin ausliefern, solange sie als frisch gilt. Geben Sie der Antwort daher eine kurze Frischezeit oder verlangen Sie eine erneute Validierung, wenn Aktualisierungen zeitnah sichtbar werden müssen. Jede Version unter einer neuen URL zu veröffentlichen, vermeidet das Problem: RFC 8246 beschreibt versionierte URLs als ein Muster, das eine sehr lange Frischezeit ermöglicht, ohne abschätzen zu müssen, wann eine Ressource aktualisiert wird. MDN empfiehlt einen langen Wert für max-age bei URLs, die eine Versionsnummer oder einen Hash enthalten.

Wann Medien-URLs wichtig sind

Geben Sie stabile Medien-URLs zurück, wenn Clients Medien in Seiten, Player oder API-Antworten einbetten. Eine signierte URL begrenzt den Zugriff. Enthält sie eine Ablaufzeit, werden Anfragen nach diesem Zeitpunkt abgelehnt. Sie eignet sich daher nicht für langfristige Verweise. Zudem ist jede neue Signatur für einen Cache, dessen Schlüssel den vollständigen Abfragestring enthält, eine neue URL.

So hilft Transloadit bei Medien-URLs

Transloadit stellt Medien-URLs auf zwei Arten bereit. Jede Ergebnisdatei im Assembly Status enthält url und ssl_url. Wird ein Ergebnis mit einem Robot zum Speichern wie /s3/store exportiert, gibt der Assembly Status die URL der Datei in Ihrem Bucket zurück. Diese URL verweist auf das gespeicherte Objekt, macht ein privates Objekt jedoch weder öffentlich noch gewährt sie Lesezugriff. Veröffentlichen Sie sie daher nur dort, wo Zuschauer das Objekt lesen dürfen. Veröffentlichen Sie andernfalls eine autorisierte Speicher- oder CDN-URL dafür. URLs auf Transloadits temporärem Speicher werden automatisch entfernt und sind laut Dokumentation nicht für die Auslieferung an Endnutzer gedacht. Eine URL für Smart CDN hat die Form https://[your-workspace].tlcdn.com/[template-name]/[file-path]?[parameters]: Der Template-Name und der Dateipfad wählen den Workflow und das Original aus. Die Abfrageparameter werden als Transformationseinstellungen an das Template übergeben. Die URL kann mit einer Ablaufzeit in exp und einer Signatur in sig signiert werden. Die effektive Cache-Lebensdauer einer signierten Antwort ist durch die verbleibende Gültigkeitsdauer der Signatur begrenzt.

Für Antworten über Smart CDN umfassen die dokumentierten Standardheader beim Robot /file/serve unter anderem Accept-Ranges: bytes sowie Content-Type, dessen Wert aus dem erkannten MIME-Typ der Datei stammt.

Entdecken Sie Transloadits Möglichkeiten zur Auslieferung

Quellen

Machen Sie aus Medienwissen eine funktionierende Pipeline

Verbinden Sie Uploads, Verarbeitung, KI, Storage und Auslieferung über eine deklarative API – um Encoding-Stack, Skalierung und ständig wechselnde Formate müssen Sie sich nicht selbst kümmern.

Transloadit kostenlos ausprobieren