You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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异步环境更友好:
    1. 引入对应版本依赖(以Gradle为例,版本需和你的KMongo核心版本保持一致):
      implementation("org.litote.kmongo:kmongo-coroutine-gridfs:4.11.0")
      
    2. 直接创建协程版GridFSBucket:
      val coroutineGridFsBucket = coroutineDatabase.gridFSBucket("自定义存储桶名称")
      

内容的提问来源于stack exchange,提问作者EmmaneulO1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 20:15:04