小编Al *_*bix的帖子

如何使用 MongoDB 或其他文档数据库来保存视频文件,以及添加到现有二进制文件和并行读/写的选项

我在视频服务器上工作,我想使用数据库来保存视频文件。由于我只需要存储带有元数据的简单视频文件,我尝试在 Java 中使用 MongoDB,通过其GridFS机制来存储视频文件及其元数据。

但是,我需要两个主要功能,而我无法使用 MongoDB 进行管理:

  1. 我希望能够添加到以前保存的视频中,因为保存视频可能是分块执行的。我不想删除到目前为止的二进制文件,只需在项目末尾附加字节即可。
  2. 我希望能够在写入时读取视频项目。“线程A”将更新视频项目,添加越来越多的字节,而“线程B”将从项目中读取,在写入/刷新后立即接收“线程A”写入的所有字节。

我尝试编写简单的代码来做到这一点,但失败了。似乎 MongoDB 不允许对二进制文件进行多线程访问(即使一个线程正在执行所有写入),我也找不到添加到二进制文件的方法 - Java GridFS API 只提供来自已经现有的 GridFSDBFile,我无法获得一个 OutputStream 来写入它。

  • 这是否可以通过 MongoDB 实现,如果可以,如何实现?
  • 如果没有,您是否知道任何其他可能允许这样做的数据库(最好不要太复杂,例如完整的关系数据库)?
  • 我最好使用 MongoDB 只保留视频文件的元数据,并手动处理从文件系统读取和写入二进制数据,这样我就可以自己实现上述要求吗?

谢谢,

database video document mongodb nosql

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

database ×1

document ×1

mongodb ×1

nosql ×1

video ×1