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 回答