ZBLOG

mongodb存储视频流

MongoDB可以存储视频流,但需要使用GridFS来处理大文件的存储和检索。GridFS是MongoDB的一个特殊协议,用于将大文件分成小块并存储到集合中。以下是使用Node.js和Mongoose在MongoDB中存储视频流的示例代码:

const mongoose = require('mongoose');
const Grid = require('gridfs-stream');

// 连接数据库
mongoose.connect('mongodb://localhost:27017/myDatabase', { useNewUrlParser: true });
const conn = mongoose.connection;

conn.once('open', () => {
  console.log('连接成功!');
  const gfs = Grid(conn.db, mongoose.mongo);
  
  // 创建写入流
  const writeStream = gfs.createWriteStream({
    filename: 'myVideo.mp4'
  });

  // 打开读取流
  const readStream = fs.createReadStream('/path/to/myVideo.mp4');
  
  // 将数据写入到数据库中
  readStream.pipe(writeStream);

});

此代码创建了一个名为“ myVideo.mp4”的文件,并将其从本地路径写入MongoDB中的GridFS集合。要检索视频,请使用以下代码:

gfs.files.find({filename: 'myVideo.mp4'}).toArray((err, files) => {
   if(!files || files.length === 0) {
     return res.status(404).json({
       message: '未找到该文件!'
     })
   }
   
   const readStream = gfs.createReadStream({
     _id: files[0]._id,
     filename: files[0].filename
   })

   readStream.pipe(res); // 将视频发送给客户端浏览器
})

此代码检索名为“ myVideo.mp4”的文件并创建读取流,以将其发送到客户端浏览器进行查看。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=6537

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?