现在 GridFS 文件集合的 md5
属性已经过时,不需要驱动程序来计算它,所以我想禁用它以节省几毫秒......
MongoDB Java 驱动程序确实在 GridFSBucketImpl
中提供了一个选项 disableMD5
,但是因为我使用的是 Spring Boot 的 GridFsTemplate
(spring-data- mongodb 2.1.2.RELEASE) 我没有直接访问它的权限。 GridFsTemplate
有一个方法 getGridFs()
返回为当前数据库和存储桶名称配置的 GridFSBucket
,但不幸的是这个方法是私有(private)的,所以我可以'覆盖它。
那么我的选择是什么?我是否必须覆盖所有 GridFsTemplate
?我错过了某个地方的简单设置吗?我应该向 Spring 提交功能请求吗?
更新
显然 GridFsTemplate
并不意味着要扩展(尽管它只需要 getGridFs
和几个要保护的字段)所以我最终创建了自己的 CustomGridFsTemplate
,它几乎是 GridFsTemplate
的副本,只是我在 getGridFs
中调用了 GridFSBucket.withDisableMD5(true)
。
我对此不是很满意,但它确实有效,而且我目前看不到更好的选择。
更新 2 我已经提交了 Spring 功能请求,请为它投票! https://jira.spring.io/browse/DATAMONGO-2165
最佳答案
目前没有更好的办法。看起来你提交了 a ticket扩展 GridFsTemplate
以允许自定义。
关于mongodb - 如何在 Spring Boot 中禁用 GridFS MD5 计算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53728853/