minio-hs 0.2.0 → 0.2.1
raw patch · 2 files changed
+13/−9 lines, 2 filesdep ~http-conduit
Dependency ranges changed: http-conduit
Files
- minio-hs.cabal +1/−1
- src/Network/Minio/Utils.hs +12/−8
minio-hs.cabal view
@@ -1,5 +1,5 @@ name: minio-hs-version: 0.2.0+version: 0.2.1 synopsis: A Minio client library, compatible with S3 like services. description: minio-hs provides simple APIs to access Minio and Amazon S3 compatible object storage server. For more details,
src/Network/Minio/Utils.hs view
@@ -24,14 +24,13 @@ import qualified Control.Monad.Trans.Resource as R import qualified Data.ByteString as B+import qualified Data.ByteString.Lazy as LB import qualified Data.Conduit as C import qualified Data.Conduit.Binary as CB-import Data.Default (Default(..)) import qualified Data.Text as T import Data.Text.Encoding.Error (lenientDecode) import Data.Text.Read (decimal) import Data.Time-import qualified Network.HTTP.Client as NClient import Network.HTTP.Conduit (Response) import qualified Network.HTTP.Conduit as NC import qualified Network.HTTP.Types as HT@@ -40,7 +39,6 @@ import Lib.Prelude -import Network.Minio.Errors import Network.Minio.XmlParser (parseErrResponse) allocateReadFile :: (R.MonadResource m, R.MonadResourceBase m, MonadCatch m)@@ -119,7 +117,7 @@ => NC.Request -> NC.Manager -> m (NC.Response LByteString) httpLbs req mgr = do- respE <- liftIO $ tryHttpEx $ (NClient.httpLbs req mgr)+ respE <- liftIO $ tryHttpEx $ (NC.httpLbs req mgr) resp <- either throwM return respE unless (isSuccessStatus $ NC.responseStatus resp) $ case contentTypeMay resp of@@ -127,14 +125,16 @@ sErr <- parseErrResponse $ NC.responseBody resp throwM sErr - _ -> throwM $ NC.StatusCodeException (NC.responseStatus resp) [] def+ _ -> throwM $ NC.HttpExceptionRequest req $+ NC.StatusCodeException (const () <$> resp) (show resp) return resp where tryHttpEx :: (IO (NC.Response LByteString)) -> IO (Either NC.HttpException (NC.Response LByteString)) tryHttpEx = try- contentTypeMay resp = lookupHeader Hdr.hContentType $ NC.responseHeaders resp+ contentTypeMay resp = lookupHeader Hdr.hContentType $+ NC.responseHeaders resp http :: (R.MonadResourceBase m, R.MonadResource m) => NC.Request -> NC.Manager@@ -149,12 +149,16 @@ sErr <- parseErrResponse $ respBody throwM sErr - _ -> throwM $ NC.StatusCodeException (NC.responseStatus resp) [] def+ _ -> do+ content <- LB.toStrict . NC.responseBody <$> NC.lbsResponse resp+ throwM $ NC.HttpExceptionRequest req $+ NC.StatusCodeException (const () <$> resp) $ content + return resp where tryHttpEx :: (R.MonadResourceBase m) => (m a)- -> m (Either MinioErr a)+ -> m (Either NC.HttpException a) tryHttpEx = ExL.try contentTypeMay resp = lookupHeader Hdr.hContentType $ NC.responseHeaders resp