0

ノードとエクスプレスを使用しています。動画ファイルがパブリック フォルダーに存在するように (クライアントに提供できるように)、許可されていないユーザーがブラウザーの URL から直接アクセスできないように、動画ファイルへのアクセスを制御したいと考えています。

通常の html5 ビデオ タグを使用してクライアントにビデオを提供したい:

<video width="320" height="240" controls>
    <source src="mp4 video file" type="video/mp4">
    <source src="ogg video file" type="video/ogg">
    Your browser does not support the video tag.
</video>

これは可能ですか?どのように実装できますか?ありがとう

----------------------- この方法で解決: ----------------------

ミドルウェアを使用して解決しました。それは私よりもはるかに簡単でした。

アプリのパブリック フォルダーにあるビデオ フォルダーにファイルを配置しました。この行を application.js ファイルに追加しましたが:

app.get('/videos/*', authenticationFunction(), function(req, res, next) {
    next();
});

authenticationFunction は、ユーザーがビデオ フォルダーのファイルへのアクセスを許可されているかどうかを確認します。

authenticationFunction は次のようになります。

var authenticationFunction = function(){
    return function(req, res, next) {
        if(the user is authorized to access the files){
            return next();
        } else{
            return next(new Error('unauthorized video access'));
        }
    }
}

最後に、app.use 関数のアプリ構成で、「無許可のビデオ アクセス」エラー処理部分を追加しました。

とにかくありがとう

4

1 に答える 1

0

静的アセット フォルダーとして宣言します。

app.use(express.static(__dirname + 'videos/'));

例:

videos/
  ├── vid1
  │
  ├── vid2
  │
  └── vid3


public/
  ├── css/
  │     ├── ...
  │     └── ...
  ├── js/
  │     ├── ...
  │     └── ...
  └── img/
        ├── ...
        └── ....
于 2013-07-10T10:43:24.757 に答える