Dieser Artikel ist eine Fortsetzung von Video Stream unter AWS S3 + CloudFront.
Es wird auf Seite 17 von Sichere Bereitstellung von Inhalten und Effektverfolgung durch CloudFront beschrieben.
Die signierte URL generiert eine einmalige URL für jede URL und bricht das Surfen für einen bestimmten Zeitraum ab. Sie können die URL jedoch mit einem Platzhalter angeben und damit eine gültige Signatur für das Verzeichnis mit der .ts-Datei signieren. Es scheint, dass Sie es bekommen können.
http://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/private-content-creating-signed-url-custom-policy.html
Im Fall von boto (Python-Modul) kann es erstellt werden, indem der Methode create_signed_url policy_url (str) zugewiesen wird. http://boto.readthedocs.org/en/latest/ref/cloudfront.html
Gemäß dem zuvor eingeführten JAWS Days-Dokument wird der URI der .ts-Datei in der Manifestdatei mit der Erweiterung .m3u8 durch Hinzufügen einer Domäne als signierte URL neu geschrieben.
Dies ist möglich, wenn Sie dies zum Zeitpunkt des Ansehens des Videos dynamisch tun.
Die Manifestdatei hatte das folgende einfache Format, daher scheint es gut, die Zeile neu zu schreiben, die nicht mit "#" beginnt. (Erreichbar mit einem einfachen Parser)
Beispiel für eine Manifestdatei.m3u8
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-ALLOW-CACHE:YES
#EXT-X-TARGETDURATION:11
#EXTINF:10.866922,
hls_400_00000.ts
#EXTINF:10.817778,
hls_400_00001.ts
#EXTINF:10.815044,
hls_400_00002.ts
.
.
.
#EXT-X-ENDLIST
Ich mache mir Sorgen darüber, wo und wann ich das tun soll ...
Als in Betracht gezogene Methode erhält der Anwendungsserver (diesmal unter der Annahme von Plone) das ursprüngliche Manifest von S3 (oder CloudFront), schreibt es in eine signierte URL um und verteilt es.
Es scheint notwendig zu sein, zu berücksichtigen, wie viel dieses Umschreiben bei jedem Zugriff auf die URL hinzugefügt wird. Insbesondere beim PC-Zugriff ist diese Konvertierung nicht erforderlich, da sie von RTMP anstelle von HLS angezeigt wird.
Wenn Sie dies tun, wenn auf die Manifestdatei des Anwendungsservers zugegriffen wird, liegt möglicherweise kein Problem vor, da Sie sie bei RTMP nicht unachtsam konvertieren müssen. (Video.js wählt zwei Quellen aus, daher denke ich, dass dies in Ordnung ist.)
Durch die Integration verschiedener Technologien befinden wir uns meiner Meinung nach in einer Situation, in der es möglich erscheint, die gewünschten Funktionen zu implementieren. Tatsächlich werde ich versuchen, mit dieser Streaming-Methode zu experimentieren.
TODO
--Versuchen Sie die benutzerdefinierte Richtlinie für signierte URLs (geben Sie zulässige Inhalte mit Platzhaltern an).