如何在KMongo协程客户端中使用GRIDFSBuckets
Ktor KMongo协程客户端适配GridFSBucket解决方案
核心逻辑:KMongo封装的CoroutineDatabase内置公开持有原生MongoDB Java Driver的MongoDatabase实例,可直接获取使用;也可直接引入GridFS协程扩展实现全异步调用。
- 方案1:手动转换原生实例创建GridFSBucket
直接调用CoroutineDatabase的database属性获取原生MongoDatabase实例,传入GridFSBuckets.create()方法即可,代码示例:import com.mongodb.client.gridfs.GridFSBuckets import org.litote.kmongo.coroutine.coroutine import org.litote.kmongo.reactivestreams.KMongo // 创建协程客户端 val mongoClient = KMongo.createClient("mongodb://你的MongoDB连接地址").coroutine // 获取协程数据库实例 val coroutineDatabase = mongoClient.getDatabase("你的数据库名") // 获取原生MongoDatabase实例 val nativeDatabase = coroutineDatabase.database // 创建GridFS存储桶 val gridFsBucket = GridFSBuckets.create(nativeDatabase, "自定义存储桶名称") - 方案2:使用KMongo GridFS协程扩展
直接引入官方协程GridFS依赖,无需做类型转换即可直接创建协程版GridFSBucket,支持全协程操作上传、下载、删除文件,适配Ktor异步环境更友好:- 引入对应版本依赖(以Gradle为例,版本需和你的KMongo核心版本保持一致):
implementation("org.litote.kmongo:kmongo-coroutine-gridfs:4.11.0") - 直接创建协程版GridFSBucket:
val coroutineGridFsBucket = coroutineDatabase.gridFSBucket("自定义存储桶名称")
- 引入对应版本依赖(以Gradle为例,版本需和你的KMongo核心版本保持一致):
内容的提问来源于stack exchange,提问作者EmmaneulO1
相关产品推荐
相关产品推荐

