我正在尝试将文件从磁盘复制到MongoDB GridFS中的带有Database.MongoDB包的文件。
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和一个操作(一个专门的阅读器)。
怎样才能把这些管道的碎片连接起来呢?
发布于 2017-11-05 09:44:30
如果没有所有可用的类型和函数,就很难告诉您最佳的方法。然而,一种应该工作的方式如下所示:
withBinaryFile (unpack src) ReadMode $ \h -> runMongo $ runConduit $
sourceHandle h .| GFS.sinkFile bucket srchttps://stackoverflow.com/questions/47119668
复制相似问题