model: Rawdata bytes ByteString way 1: addHeader "Content-Disposition" $ T.concat ["attachment; filename=\"", filename, "\""] rawdata <- runDB $ get404 rawdataId let bytes = rawdataBytes rawdata sendResponse (TE.encodeUtf8 mimetype, toContent bytes) way 2: let bytesSource = selectSource [RawdataId ==. rawdataId] [] respondSourceDB (TE.encodeUtf8 mimetype) $ bytesSource $= awaitForever toBuilder' where toBuilder' (Entity _ rawdata) = do sendChunkBS $ rawdataBytes rawdata sendFlush way 3: let bytesSource = E.selectSource $ E.from $ \rd -> do E.where_ (rd E.^. RawdataId E.==. E.val rawdataId) return $ rd E.^. RawdataBytes respondSourceDB (TE.encodeUtf8 mimetype) $ bytesSource $= awaitForever toBuilder' where toBuilder' (E.Value bytes) = do sendChunkBS bytes sendFlush
Tuesday, July 24, 2018
Ways to stream yesod data to the client
Labels:
yesod
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment