我一直在使用meteor创建视频上传器,并且一直使用CollectionFS来存储文件。不幸的是,在负载较重的情况下,需要花费更长的时间来加载要显示的视频,所有视频文件大约为50MB。为了解决集合上的压力问题,我想将当前CollectionFS集合中的所有文件保存到驱动器中,以便将它们放在CDN上。
我不知道如何将文件保存到硬盘驱动器,因此任何有关该主题的启示都会有所帮助。服务器上的压力正在迫使流星耗尽内存。
答案 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