2017-10-12 3 views
0

私はeラーニングのウェブサイトを構築し、ファイルを格納するためにAmazon S3を使用しました。ダウンロードを防止するAmazon S3バケットポリシーはありますか?

は私がしたい:ビデオを見ることができ

•Webサイトの訪問者は•彼らは の動画をダウンロードすることができません**

私はバケットポリシーに追加すべき政策、先生?

私は、以下のポリシーを使用するが、これはプライベートでビデオを保つので、それらの両方が見てダウンロードすることはできません。

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

}

+0

ビデオは、それが見することができます前に、最初にダウンロードする必要があります。 S3はビデオストリーミングサービスではありません。 – helloV

+0

応援、helloV。右クリックを防ぐために.htアクセスを使用するのはどうですか? – Christopher

+0

ユーザーはどのようにして「ビデオを見ますか?どのような技術を使ってビデオを配信していますか?ビデオはHTMLページに埋め込まれていますか、何とか配信されていますか? *誰に* *見ることを許可するのか、またはユーザーのみを選択したいのですか?質問を編集して詳細を提供してください。 –

答えて

2

S3は、保護されたコンテンツのストリーミングを提供することができます。これは非常に一般的な要求です。

まず、あなたは、Amazon弾性トランスコーダを使用して、HLS(HTTPライブストリーミング)にあなたの動画をトランスコード。ユーザーは、Webサーバーに接続するHLSをサポートするビデオプレーヤーまたはブラウザーを使用します。 S3に格納されているコンテンツは暗号化されています。 HLSはビデオを複数の解像度の小さなセグメントに分割します。インターネット速度、デバイス解像度などの変更など、多くの要因に基づいて、再生中にビデオが動的に変化します。CloudFrontはHLSビデオを配信する必要はありません。

は、AmazonのElasticトランスコーダを見て、AppleのHLSビューアあなたが始めるために。 Microsoft Edgeでさえ、HLSをサポートしています。

+0

ありがとう、ジョンハンリー:) – Christopher

0

ユーザーがそれを見るためにダウンロードする必要があるので、あなたがダウンロードを防ぐために、S3のポリシーを使用することはできません。 S3はストリーミングもサポートしていません。しかし、AWS Cloudfrontと組み合わせてS3ビデオをストリーミングできます。 AWS CloudfrontがS3ビデオを取得できるようにする権限を設定するだけで、Cloudfrontはそれらを端にキャッシュします。ユーザーはCloudfront URL経由で動画をストリーミングできます。

Read this for more detail

最初のオプションは、実装が非常に簡単で、ちょうど あらゆるモバイルデバイスとデスクトップ程度によってサポートされています。あなたがやらなければならないことは、バケットにその ポイントをS3バケットに あなたのコンテンツを入れて、CloudFrontの分布を作成することです。あなたのユーザーのビデオプレーヤーは、 ファイルを要求するために、CloudFront のURL(ディストリビューションの一部としてアクセス可能)を使用します。要求は、ユーザの位置 に基づいて、最適なエッジ位置に向けられます。 CloudFrontは、既にキャッシュされていない場合は をS3バケットから取得し、そのキャッシュからビデオを配信します。この オプションには、いくつかの欠点があります。それはあなたの 視聴者の帯域幅を非効率的に使用します。ユーザーが ビデオ全体を見守ってもらわなければ、コンテンツは見られず、ダウンロードされます。先に進んで をスキップするか、または早送りする場合は、コンテンツがダウンロードされる必要があります( は見られません)。

+0

ありがとう、BTuan。 :) – Christopher

関連する問題