将CollectionFS数据库转换为硬盘驱动器上的文件

时间:2014-03-26 14:48:20

标签: meteor cdn

我一直在使用meteor创建视频上传器,并且一直使用CollectionFS来存储文件。不幸的是,在负载较重的情况下,需要花费更长的时间来加载要显示的视频,所有视频文件大约为50MB。为了解决集合上的压力问题,我想将当前CollectionFS集合中的所有文件保存到驱动器中,以便将它们放在CDN上。

我不知道如何将文件保存到硬盘驱动器,因此任何有关该主题的启示都会有所帮助。服务器上的压力正在迫使流星耗尽内存。

1 个答案:

答案 0 :(得分:0)

这实际上是一个mongodb问题,而不是流星。摘自official documentation,以下示例说明如何为一个文件执行此操作。当然,您可以使用find而不是findone并迭代结果来编写每个单独的文件。

// returns GridFS bucket named "contracts"
GridFS myContracts = new GridFS(myDatabase, "contracts");

// retrieve GridFS object "smithco"
GridFSDBFile file = myContracts.findOne("smithco");

// saves the GridFS file to the file system
file.writeTo(new File("/tmp/smithco.pdf"));

还有一个官方mongofiles utility可以用于同一目的:

mongofiles -d records get smithco.pdf