2016-07-21 31 views
0

私はアプリを構築して、許可を持っているか、そのビデオを支払った場合にだけ、いくつかのビデオを見ることができます。私はDjangoを使用しています。メディアファイルを提供するためにngnixとgunicornを追加します。 一度ユーザーがビデオのURLを取得した場合、支払いが期限切れになった場合、または彼に権限がない場合、ビデオを見られないようにブロックするにはどうすればよいですか?今のところ、私はdjangoに動画を配信させ、サーバーメソッドを上書きします。動画にアクセスできない場合は、404に戻ります。メディアdjangoのメディアファイルに権限を追加できますか?

+1

静的ファイルを直接提供する代わりに、ユーザーのアクセス許可に応じてビューに動的にファイルを提供する必要があります。 – lonewaft

+0

あなたは私に短いサンプルをお願いします。私はgunicornとnginxを一度も使用しませんでした。初めて生産を開始しました。 – jalanga

+0

@ lonewaftもし私があなたが言ったことをすれば、ビデオはnginxから来て、djangoのサーバーになるでしょう、ビデオをシークアブルにすることはできますか?今私はできないので – jalanga

答えて

2

いわゆる「X-Sendfile機能」を実装する必要があります。あなたは、ユーザーにアプリがヘッダーX-Accel-Redirect: /protected/mycoolflix.mp4を追加する必要がmycoolflix.mp4という名前のファイルを提供したい、その後

location /protected/ { 
    internal; 
    root /some/path; 
} 

と:あなたはnginxののconfigに追加する必要がある - のは、あなたの有料の場所/protected/から提供されるファイルとしましょうファイル/some/path/protected/mycoolflix.mp4がユーザーに配信されます。詳細は、nginxのマニュアルherehereを参照してください。 あなたのビューからファイルを提供することは良い考えではありません。ダウンロードが完了するまであなたのDjangoプロセスがビジー状態になり、他の要求を処理できなくなります。

関連する問題