Cet article est une suite relative à Video Stream on AWS S3 + CloudFront.
Il est décrit à la page 17 de Livraison sécurisée de contenu et suivi des effets réalisé par CloudFront.
L'URL signée génère une URL unique pour chaque URL et annule la navigation pendant un certain temps, mais vous pouvez spécifier l'URL avec un caractère générique et l'utiliser pour signer une signature valide pour le répertoire contenant le fichier .ts. Il semble que vous puissiez l'obtenir.
http://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/private-content-creating-signed-url-custom-policy.html
Dans le cas de boto (module Python), il peut être créé en donnant policy_url (str) à la méthode create_signed_url. http://boto.readthedocs.org/en/latest/ref/cloudfront.html
Selon le document JAWS Days présenté précédemment, l'URI du fichier .ts dans le fichier manifeste avec l'extension .m3u8 est réécrit en URL signée en ajoutant un domaine.
Cela est possible si vous faites cela de manière dynamique au moment de regarder la vidéo.
Le fichier manifeste avait le format simple suivant, il semble donc bon de réécrire la ligne qui ne commence pas par "#". (Réalisable avec un analyseur simple)
Exemple de fichier manifeste.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
Je m'inquiète de savoir où et quand faire cela ...
En tant que méthode à l'étude, le serveur d'applications (en supposant que Plone cette fois) acquiert le manifeste d'origine de S3 (ou CloudFront), le réécrit dans une URL signée et le distribue.
Il semble nécessaire de considérer combien cette réécriture est ajoutée chaque fois que l'URL est accédée. En particulier, dans le cas d'un accès PC, cette conversion n'est pas nécessaire car la navigation se fait avec RTMP au lieu de HLS.
Si cela est fait lors de l'accès au fichier manifeste du serveur d'application, il peut n'y avoir aucun problème car il n'est pas nécessaire de le convertir sans précaution au moment de RTMP. (Video.js sélectionnera deux sources, donc j'ai l'impression que ça va)
En intégrant diverses technologies, je pense que nous sommes dans une situation où il semble possible de mettre en œuvre les fonctions souhaitées. En fait, je vais essayer d'expérimenter cette méthode de streaming.
TODO