首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何转换管道管道中的单片管道?

如何转换管道管道中的单片管道?
EN

Stack Overflow用户
提问于 2017-11-05 08:35:34
回答 1查看 120关注 0票数 1

我正在尝试将文件从磁盘复制到MongoDB GridFS中的带有Database.MongoDB包的文件。

代码语言:javascript
复制
main :: IO ()
main = do
  pipe <- MDB.connect (host "127.0.0.1")
  _ <- access pipe master "baseball" run
  close pipe

run :: MDB.Action IO GFS.File
run = do
  uploadImage "sandbox/bat.jpg"

uploadImage :: Text -> MDB.Action IO GFS.File
uploadImage src = do
  bucket <- GFS.openDefaultBucket
  runConduitRes $ sourceFileBS (unpack src) .| (hole $ GFS.sinkFile  bucket src)

这是不起作用的,因为sourceFileBS希望在基单元中作为资源,而GFS.sinkFile需要一个MongoDB和一个操作(一个专门的阅读器)。

怎样才能把这些管道的碎片连接起来呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-05 09:44:30

如果没有所有可用的类型和函数,就很难告诉您最佳的方法。然而,一种应该工作的方式如下所示:

代码语言:javascript
复制
withBinaryFile (unpack src) ReadMode $ \h -> runMongo $ runConduit $
  sourceHandle h .| GFS.sinkFile bucket src
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47119668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档