mongoDB 作为 Grails 应用程序的文件存储

Posted

技术标签:

【中文标题】mongoDB 作为 Grails 应用程序的文件存储【英文标题】:mongoDB as a file storage for Grails application 【发布时间】:2013-02-01 17:47:02 【问题描述】:

我最近遇到了在我的应用程序中存储更多文件的需求,并且因为用于托管应用程序的 PaaS 平台提供了 mongo,所以我想使用它。

但是,由于我对 mongo 非常缺乏经验,我几乎不知道与 mongo 相关的 grails 插件和工具的当前状态是什么。我应该使用什么?由于我想将域类保留在 SQL 数据库中并仅使用 mongo 来存储相关文件(在这种情况下,它主要是一堆与域实例相关的 PDF 和文本文档),mongoDB ORM [1] 插件似乎太“重” .不幸的是,mongoDB ORM 可能是目前唯一一个用于 grails 的 mongo 插件。

简而言之,为此目的最好的插件/库工具集是什么?我发现最符合我需要的是 grails-mongo-files 插件 [2],它可能有点过时,没有进一步的开发。到目前为止,我似乎必须使用 mongo 的 java 驱动程序(或gmongo 包装器)并自己编写一些存储服务和标签库(这不是一件坏事)。

[1]http://grails.org/plugin/mongodb

[2]https://github.com/quirklabs/grails-mongo-file

【问题讨论】:

grails-mongo-file 看起来很不错 确实,不幸的是,它有一个旧版本的 mongoDB ORM 作为依赖项,现在似乎已经过时了至少一年。否则它将完全满足我的需要 【参考方案1】:

还有 mongodb gridfs 插件。 http://grails.org/plugin/mongodb-gridfs

需要考虑的一点是,gridfs 有效地对 mongo 进行了两次调用,一次检索文件信息,一次检索文件。因此,如果您的文件小于 16 兆字节,它可能不太适合。

如果您想绕过插件,这里有一篇关于如何手动执行此操作的帖子 - http://jameswilliams.be/blog/entry/171

【讨论】:

是的,那篇文章很有帮助(我已经看过了)。关于效率,这是棘手的部分,因为我几乎不知道这些文件的大小是多少,因为它们与不同的项目相关。大多数情况下,它只会包含一堆 pdf 和一些小档案,但也可以上传更大的文件。另一方面,它不是一个关键的系统,效率低下可能不会伤害我们。我也会看看那个插件,坦克

以上是关于mongoDB 作为 Grails 应用程序的文件存储的主要内容,如果未能解决你的问题,请参考以下文章

Grails spring security core 3.1.2 和 mongodb

在 grails3 中使用 mongodb 和休眠

每个子类的 Grails 继承 MongoDb 集合

使用 MongoDB 在 Grails 应用程序上运行基于 Lucene 的搜索

无法使用 mongodb 插件版本 3.0.3 运行 Grails 应用程序

如何为 mongodb 副本集配置 grails 3