added: fileSourceByteString

This function is to get `FileInfo` raw body.
This commit is contained in:
ncaq 2018-04-17 13:58:15 +09:00
parent 06e0ffb48b
commit 7e2ca33ed5
2 changed files with 13 additions and 2 deletions

View File

@ -47,6 +47,7 @@ module Yesod.Core.Handler
, fileName , fileName
, fileContentType , fileContentType
, fileSource , fileSource
, fileSourceByteString
, fileMove , fileMove
-- *** Convenience functions -- *** Convenience functions
, languages , languages
@ -252,7 +253,7 @@ import Data.CaseInsensitive (CI, original)
import qualified Data.Conduit.List as CL import qualified Data.Conduit.List as CL
import Control.Monad.Trans.Resource (MonadResource, InternalState, runResourceT, withInternalState, getInternalState, liftResourceT, resourceForkIO) import Control.Monad.Trans.Resource (MonadResource, InternalState, runResourceT, withInternalState, getInternalState, liftResourceT, resourceForkIO)
import qualified System.PosixCompat.Files as PC import qualified System.PosixCompat.Files as PC
import Data.Conduit (ConduitT, transPipe, Flush (Flush), yield, Void) import Data.Conduit (ConduitT, connect, transPipe, Flush (Flush), yield, Void)
import qualified Yesod.Core.TypeCache as Cache import qualified Yesod.Core.TypeCache as Cache
import qualified Data.Word8 as W8 import qualified Data.Word8 as W8
import qualified Data.Foldable as Fold import qualified Data.Foldable as Fold
@ -1360,6 +1361,16 @@ rawRequestBody = do
fileSource :: MonadResource m => FileInfo -> ConduitT () S.ByteString m () fileSource :: MonadResource m => FileInfo -> ConduitT () S.ByteString m ()
fileSource = transPipe liftResourceT . fileSourceRaw fileSource = transPipe liftResourceT . fileSourceRaw
-- | Strict `ByteString` body from `FileInfo`.
-- This function blocking while read file.
--
-- > do
-- > fileByteString <- fileSourceByteString fileInfo
--
-- @since 1.6.4
fileSourceByteString :: MonadResource m => FileInfo -> m S.ByteString
fileSourceByteString fileInfo = fileSource fileInfo `connect` CL.foldMap id
-- | Provide a pure value for the response body. -- | Provide a pure value for the response body.
-- --
-- > respond ct = return . TypedContent ct . toContent -- > respond ct = return . TypedContent ct . toContent

View File

@ -1,5 +1,5 @@
name: yesod-core name: yesod-core
version: 1.6.3 version: 1.6.4
license: MIT license: MIT
license-file: LICENSE license-file: LICENSE
author: Michael Snoyman <michael@snoyman.com> author: Michael Snoyman <michael@snoyman.com>