aws 0.3.2 → 0.4.0
raw patch · 11 files changed
+31/−23 lines, 11 filesdep +monad-controldep −shortcircuitdep ~conduitdep ~http-conduitdep ~xml-conduitPVP ok
version bump matches the API change (PVP)
Dependencies added: monad-control
Dependencies removed: shortcircuit
Dependency ranges changed: conduit, http-conduit, xml-conduit
API changes (from Hackage documentation)
- Aws.Query: SignedQuery :: Method -> Protocol -> ByteString -> Int -> ByteString -> Query -> Maybe UTCTime -> Maybe ByteString -> Maybe ByteString -> Maybe ByteString -> RequestHeaders -> RequestHeaders -> Maybe (RequestBody IO) -> ByteString -> SignedQuery
+ Aws.Query: SignedQuery :: Method -> Protocol -> ByteString -> Int -> ByteString -> Query -> Maybe UTCTime -> Maybe ByteString -> Maybe ByteString -> Maybe ByteString -> RequestHeaders -> RequestHeaders -> Maybe (RequestBody (ResourceT IO)) -> ByteString -> SignedQuery
- Aws.Query: queryToHttpRequest :: SignedQuery -> Request IO
+ Aws.Query: queryToHttpRequest :: SignedQuery -> Request (ResourceT IO)
- Aws.Query: sqBody :: SignedQuery -> Maybe (RequestBody IO)
+ Aws.Query: sqBody :: SignedQuery -> Maybe (RequestBody (ResourceT IO))
- Aws.Response: type HTTPResponseConsumer a = Status -> ResponseHeaders -> Source IO ByteString -> ResourceT IO a
+ Aws.Response: type HTTPResponseConsumer a = Status -> ResponseHeaders -> Source (ResourceT IO) ByteString -> ResourceT IO a
- Aws.S3.Commands.PutObject: PutObject :: Text -> Bucket -> Maybe ByteString -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe ByteString -> Maybe Int -> Maybe CannedAcl -> Maybe StorageClass -> RequestBody IO -> [(Text, Text)] -> PutObject
+ Aws.S3.Commands.PutObject: PutObject :: Text -> Bucket -> Maybe ByteString -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe ByteString -> Maybe Int -> Maybe CannedAcl -> Maybe StorageClass -> RequestBody (ResourceT IO) -> [(Text, Text)] -> PutObject
- Aws.S3.Commands.PutObject: poRequestBody :: PutObject -> RequestBody IO
+ Aws.S3.Commands.PutObject: poRequestBody :: PutObject -> RequestBody (ResourceT IO)
- Aws.S3.Commands.PutObject: putObject :: Text -> Bucket -> RequestBody IO -> PutObject
+ Aws.S3.Commands.PutObject: putObject :: Text -> Bucket -> RequestBody (ResourceT IO) -> PutObject
- Aws.S3.Query: S3Query :: Method -> Maybe ByteString -> Maybe ByteString -> Query -> Query -> Maybe ByteString -> Maybe ByteString -> RequestHeaders -> RequestHeaders -> Maybe (RequestBody IO) -> S3Query
+ Aws.S3.Query: S3Query :: Method -> Maybe ByteString -> Maybe ByteString -> Query -> Query -> Maybe ByteString -> Maybe ByteString -> RequestHeaders -> RequestHeaders -> Maybe (RequestBody (ResourceT IO)) -> S3Query
- Aws.S3.Query: s3QRequestBody :: S3Query -> Maybe (RequestBody IO)
+ Aws.S3.Query: s3QRequestBody :: S3Query -> Maybe (RequestBody (ResourceT IO))
- Aws.Util: tryError :: (Exception e, ResourceIO m) => m b -> m (Either e b)
+ Aws.Util: tryError :: (Exception e, MonadResource m, MonadBaseControl IO m) => m b -> m (Either e b)
Files
- Aws/Aws.hs +1/−1
- Aws/Credentials.hs +6/−2
- Aws/Query.hs +3/−2
- Aws/Response.hs +2/−2
- Aws/S3/Commands/PutObject.hs +3/−2
- Aws/S3/Query.hs +2/−1
- Aws/S3/Response.hs +2/−2
- Aws/Sqs/Response.hs +2/−2
- Aws/Util.hs +4/−3
- Aws/Xml.hs +1/−1
- aws.cabal +5/−5
Aws/Aws.hs view
@@ -148,7 +148,7 @@ logger cfg Debug $ T.pack $ "String to sign: " ++ show (sqStringToSign q) let httpRequest = queryToHttpRequest q resp <- runResourceT $ do- HTTP.Response status headers body <- HTTP.http httpRequest manager+ HTTP.Response status _ headers body <- HTTP.http httpRequest manager responseConsumer request metadataRef status headers body return resp
Aws/Credentials.hs view
@@ -4,7 +4,6 @@ import Control.Applicative import Control.Monad-import Control.Shortcircuit (orM) import Data.List import System.Directory import System.Environment@@ -46,7 +45,12 @@ return (Credentials <$> (T.encodeUtf8 . T.pack <$> keyID) <*> (T.encodeUtf8 . T.pack <$> secret)) loadCredentialsFromEnvOrFile :: FilePath -> T.Text -> IO (Maybe Credentials)-loadCredentialsFromEnvOrFile file key = loadCredentialsFromEnv `orM` loadCredentialsFromFile file key+loadCredentialsFromEnvOrFile file key = + do+ envcr <- loadCredentialsFromEnv+ case envcr of+ Just cr -> return (Just cr)+ Nothing -> loadCredentialsFromFile file key loadCredentialsDefault :: IO (Maybe Credentials) loadCredentialsDefault = do
Aws/Query.hs view
@@ -11,6 +11,7 @@ import qualified Data.ByteString as B import qualified Data.Text as T import qualified Data.Text.Encoding as T+import qualified Data.Conduit as C import qualified Network.HTTP.Conduit as HTTP import qualified Network.HTTP.Types as HTTP @@ -28,12 +29,12 @@ , sqContentMd5 :: Maybe B.ByteString , sqAmzHeaders :: HTTP.RequestHeaders , sqOtherHeaders :: HTTP.RequestHeaders- , sqBody :: Maybe (HTTP.RequestBody IO)+ , sqBody :: Maybe (HTTP.RequestBody (C.ResourceT IO)) , sqStringToSign :: B.ByteString } --deriving (Show) -queryToHttpRequest :: SignedQuery -> HTTP.Request IO+queryToHttpRequest :: SignedQuery -> HTTP.Request (C.ResourceT IO) queryToHttpRequest SignedQuery{..} = HTTP.def { HTTP.method = httpMethod sqMethod
Aws/Response.hs view
@@ -35,7 +35,7 @@ type HTTPResponseConsumer a = HTTP.Status -> HTTP.ResponseHeaders- -> Source IO ByteString+ -> Source (ResourceT IO) ByteString -> ResourceT IO a class ResponseConsumer r a where@@ -46,4 +46,4 @@ type ResponseMetadata (HTTP.Response L.ByteString) = () responseConsumer _ _ status headers bufsource = do chunks <- bufsource $$ CL.consume- return (HTTP.Response status headers $ L.fromChunks chunks)+ return (HTTP.Response status HTTP.http11 headers $ L.fromChunks chunks)
Aws/S3/Commands/PutObject.hs view
@@ -20,6 +20,7 @@ import qualified Data.Text as T import qualified Data.Text.Encoding as T import qualified Network.HTTP.Conduit as HTTP+import qualified Data.Conduit as C data PutObject = PutObject { poObjectName :: T.Text,@@ -32,11 +33,11 @@ poExpires :: Maybe Int, poAcl :: Maybe CannedAcl, poStorageClass :: Maybe StorageClass,- poRequestBody :: HTTP.RequestBody IO,+ poRequestBody :: HTTP.RequestBody (C.ResourceT IO), poMetadata :: [(T.Text,T.Text)] } -putObject :: T.Text -> Bucket -> HTTP.RequestBody IO -> PutObject+putObject :: T.Text -> Bucket -> HTTP.RequestBody (C.ResourceT IO) -> PutObject putObject obj bucket body = PutObject obj bucket Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing body [] data PutObjectResponse
Aws/S3/Query.hs view
@@ -20,6 +20,7 @@ import qualified Data.ByteString.Char8 as B8 import qualified Data.CaseInsensitive as CI import qualified Network.HTTP.Conduit as HTTP+import qualified Data.Conduit as C import qualified Network.HTTP.Types as HTTP data S3Query@@ -33,7 +34,7 @@ , s3QContentMd5 :: Maybe B.ByteString , s3QAmzHeaders :: HTTP.RequestHeaders , s3QOtherHeaders :: HTTP.RequestHeaders- , s3QRequestBody :: Maybe (HTTP.RequestBody IO)+ , s3QRequestBody :: Maybe (HTTP.RequestBody (C.ResourceT IO)) } instance Show S3Query where
Aws/S3/Response.hs view
@@ -51,8 +51,8 @@ = do doc <- source $$ XML.sinkDoc XML.def let cursor = Cu.fromDocument doc liftIO $ case parseError cursor of- Success err -> C.resourceThrow err- Failure otherErr -> C.resourceThrow otherErr+ Success err -> C.monadThrow err+ Failure otherErr -> C.monadThrow otherErr where parseError :: Cu.Cursor -> Attempt S3Error parseError root = do code <- force "Missing error Code" $ root $/ elContent "Code"
Aws/Sqs/Response.hs view
@@ -42,8 +42,8 @@ = do doc <- source $$ XML.sinkDoc XML.def let cursor = Cu.fromDocument doc liftIO $ case parseError cursor of- Success err -> C.resourceThrow err- Failure otherErr -> C.resourceThrow otherErr+ Success err -> C.monadThrow err+ Failure otherErr -> C.monadThrow otherErr where parseError :: Cu.Cursor -> Attempt SqsError parseError root = do cursor <- force "Missing Error" $ root $/ Cu.laxElement "Error"
Aws/Util.hs view
@@ -1,8 +1,9 @@ {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE FlexibleContexts #-} -module Aws.Util-where+module Aws.Util where +import Control.Monad.Trans.Control import Control.Arrow import Control.Exception import Data.ByteString.Char8 ({- IsString -})@@ -15,7 +16,7 @@ import qualified Data.ByteString.UTF8 as BU import qualified Data.Conduit as C -tryError :: (Exception e, C.ResourceIO m) => m b -> m (Either e b)+tryError :: (Exception e, C.MonadResource m, MonadBaseControl IO m) => m b -> m (Either e b) tryError = Control.Exception.Lifted.try queryList :: (a -> [(B.ByteString, B.ByteString)]) -> B.ByteString -> [a] -> [(B.ByteString, B.ByteString)]
Aws/Xml.hs view
@@ -55,5 +55,5 @@ let Response metadata x = parse cursor liftIO $ tellMetadataRef metadataRef metadata case x of- Failure err -> liftIO $ C.resourceThrow err+ Failure err -> liftIO $ C.monadThrow err Success v -> return v
aws.cabal view
@@ -6,7 +6,7 @@ -- The package version. See the Haskell package versioning policy -- (http://www.haskell.org/haskellwiki/Package_versioning_policy) for -- standards guiding when and how versions should be incremented.-Version: 0.3.2+Version: 0.4.0 -- A short (one-line) description of the package. Synopsis: Amazon Web Services (AWS) for Haskell@@ -136,23 +136,23 @@ bytestring == 0.9.*, case-insensitive >= 0.2 && < 0.5, cereal == 0.3.*,- conduit >= 0.2 && < 0.3,+ conduit >= 0.4 && < 0.5, crypto-api >= 0.9, cryptohash >= 0.6 && < 0.8, directory >= 1.0 && < 1.2, failure >= 0.1.0.1 && < 0.3, filepath >= 1.1 && < 1.4,- http-conduit >= 1.2 && < 1.3,+ http-conduit >= 1.4 && < 1.5, http-types >= 0.6 && < 0.7, lifted-base == 0.1.*, mtl == 2.*,+ monad-control >= 0.3, old-locale == 1.*,- shortcircuit == 0.1.*, text >= 0.11, time >= 1.1.4 && < 1.5, transformers >= 0.2.2.0 && < 0.3, utf8-string == 0.3.*,- xml-conduit >= 0.5.0+ xml-conduit >= 0.7.0 GHC-Options: -Wall