node.js和express。用mp4&提供html5视频ogg文件无法直接访问

时间:2013-07-10 10:29:44

标签: html5 node.js video express

我正在使用节点和表达。我希望控制对视频文件的访问权限,使它们驻留在公共文件夹中(这样它们可以提供给客户端),但是非授权用户也无法通过浏览器上的URL直接访问。< / p>

我想使用通常的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检查是否允许用户访问videos文件夹中的任何文件。

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功能的app配置中,我添加了一个“未经授权的视频访问”错误处理部分。

非常感谢

1 个答案:

答案 0 :(得分:0)

将其声明为静态资源文件夹:

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

示例:

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


public/
  ├── css/
  │     ├── ...
  │     └── ...
  ├── js/
  │     ├── ...
  │     └── ...
  └── img/
        ├── ...
        └── ....