2017-10-12 11 views
0

J'ai construit un site Web d'apprentissage en ligne et utilisé Amazon S3 pour stocker les fichiers.Stratégie Amazon S3 Bucket pour empêcher le téléchargement?

Je veux:

• Les visiteurs du site peuvent regarder les vidéos • Ils ne peuvent pas télécharger les vidéos **

Quelle politique dois-je ajouter à la politique du seau, monsieur?

J'ai utilisé la politique ci-dessous, mais cela garde la vidéo en privé, donc ils ne peuvent pas regarder et télécharger.

{ 
"Version": "2012-10-17", 
"Id": "Policy1459891655092", 
"Statement": [ 
    { 
     "Sid": "Stmt1459891443631", 
     "Effect": "Allow", 
     "Principal": "*", 
     "Action": "s3:GetObject", 
     "Resource": "arn:aws:s3:::mybucketname/public/*" 
    } 
] 

}

+0

La vidéo doit d'abord être téléchargée avant de pouvoir être visionnée. S3 n'est pas un service de streaming vidéo. – helloV

+0

Bravo, bonjourV. Que diriez-vous d'utiliser l'accès .ht pour empêcher le bon clic, monsieur? – Christopher

+0

Comment vos utilisateurs "regardent les vidéos"? Quelle technologie utilisez-vous pour leur servir les vidéos?Les vidéos sont-elles intégrées dans une page HTML ou diffusées d'une manière ou d'une autre? Voulez-vous que * quelqu'un * soit autorisé à * regarder * ou à sélectionner uniquement les utilisateurs? N'hésitez pas à modifier votre question pour fournir plus de détails. –

Répondre

2

S3 peut assurer la diffusion de contenu protégé. Ceci est une demande très commune.

Vous commencez par transcoder vos vidéos dans HLS (HTTP Live Streaming) à l'aide d'Amazon Elastic Transcoder. L'utilisateur utilise ensuite un lecteur vidéo ou un navigateur qui prend en charge HLS qui se connecte à votre serveur Web. Le contenu stocké sur S3 est crypté. HLS divise une vidéo en plusieurs petits segments de plusieurs résolutions. La vidéo change de façon dynamique pendant la lecture en fonction de nombreux facteurs tels que les changements de vitesse Internet, la résolution de l'appareil, etc. CloudFront n'est pas requis pour la diffusion de vidéos HLS. Jetez un coup d'œil à Elastic Transcoder d'Amazon et à la visionneuse HLS d'Apple pour vous aider à démarrer. Même Microsoft Edge prend en charge HLS.

+0

Merci, John Hanley :) – Christopher

0

Vous ne pouvez pas utiliser la politique S3 pour empêcher le téléchargement, car l'utilisateur doit télécharger pour la voir. S3 ne supporte pas le streaming. Mais vous pouvez combiner avec AWS Cloudfront pour diffuser vos vidéos S3. Vous venez de définir l'autorisation pour permettre à AWS Cloudfront d'obtenir vos vidéos S3, puis Cloudfront les met en cache sur les bords. L'utilisateur peut diffuser des vidéos via les URL Cloudfront.

Read this for more detail

La première option est très facile à mettre en œuvre et est soutenu par tout à propos de tous les appareils mobiles et de bureau. Tout ce que vous devez faire est de mettre votre contenu dans un compartiment S3 et de créer une distribution CloudFront que pointe vers le compartiment. Le lecteur vidéo de votre utilisateur utilisera CloudFront URL (accessible dans le cadre de la distribution) pour demander le fichier vidéo . La demande sera dirigée vers l'emplacement du meilleur bord, en fonction de l'emplacement de l'utilisateur. CloudFront servira la vidéo à partir de son cache, en l'extrayant du compartiment S3 s'il n'est pas déjà mis en cache. Cette option a quelques inconvénients. Il fait une utilisation inefficace de la bande passante de votre visionneuse . Si l'utilisateur ne prend pas la peine de regarder toute la vidéo , le contenu ne sera jamais vu est encore téléchargé. Si vous sautez en avance ou si vous effectuez une avance rapide, vous devez également télécharger le contenu qui ne peut jamais être vu .

+0

Merci, BTuan. :) – Christopher