Grails使用mongo的gridfs - 插件不匹配

时间:2013-12-27 01:58:06

标签: mongodb grails plugins gridfs

我的应用程序需要使用mongodb进行正常的数据存储,并保存相当大的文件。因此,我开始使用mongodb(用于普通数据存储)和gridfs(用于大文件)的插件 我正在使用grails 2.3.4并试图找出使用mongodb和gridfs所包含的插件的问题。

我一直在搜索整个互联网(包括stalkoverflow),找出任何共存但仍然徒劳的插件。因为无论我使用什么组合的可用插件,它都显示出错误,说明兼容性问题。

我正在使用驱动程序mongo-java-driver-2.11.3.jar

我最终尝试了目前可用的所有插件。我的build-config文件如下所示: <<<

//        compile ":mongodb:1.3.3"
//        compile ":mongodb:1.0.0.GA"
//        compile ":gorm-mongodb:0.5.4" 
//        compile ":zk-mongodb:1.1-M1"
          compile ":mongodb-morphia:0.8.2"

          compile ":mongo-file:1.1.1"   
//        compile ":mongodb-gridfs:0.5.beta"
  
    

>     我知道我在这里遗漏了一些东西。     有没有人使用grails2.3.4和mongodb与gridfs?

  

请指出正确的插件或发送工作样本的代码段来帮助我。

提前谢谢大家。

2 个答案:

答案 0 :(得分:1)

当我使用“:mongodb-gridfs:0.5.beta”时,我遇到了类似的问题。事实上,即使我试图删除插件(通过我的IDE),它仍然是错误的。我从plugins.mongodb-gridfs=0.5.beta删除了application.properties,然后我的应用程序可以重新构建。

您不需要单独的插件来使用GridFS,它实际上是MongoDB Java驱动程序的一部分。但是,您需要使用较低级别的API,而不是使用默认的Grails GORM内容 - 有关如何执行此操作的一些信息here

GridFS API的工作方式与驱动程序的其余部分略有不同,但here's an example。要创建要使用的GridFS,您需要new GridFS(mongo.getDB(databaseName))

之类的内容

我没有一个完整的工作示例向您展示,但我希望您能从这些不同的例子中拼凑出您需要的东西。

答案 1 :(得分:0)

我一直在使用webfs,它过去对我们非常有用。它是一个轻量级的grails插件,用于使用Mongo的gridfs管理文件。有关详细信息,请参阅https://github.com/dlaidlaw/mongo-web-filesystem

我在文档管理模块中使用webfs插件来管理任何类型的文档,最大大小为250MB。我使用的是mongodb:1.2.0。

我没有使用Grails 2.3.4进行测试,但它适用于2.0,2.1和2.2。