packages feed

aws 0.0.2 → 0.0.3

raw patch · 9 files changed

+76/−74 lines, 9 filesdep −asciidep ~blaze-builderdep ~containersdep ~directoryPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies removed: ascii

Dependency ranges changed: blaze-builder, containers, directory, filepath, http-enumerator, http-types

API changes (from Hackage documentation)

- Aws.Query: SignedQuery :: Method -> Protocol -> Ascii -> Int -> Ascii -> Query -> Maybe UTCTime -> Maybe Ascii -> Maybe Ascii -> Maybe Ascii -> ByteString -> ByteString -> SignedQuery
+ Aws.Query: SignedQuery :: Method -> Protocol -> ByteString -> Int -> ByteString -> Query -> Maybe UTCTime -> Maybe ByteString -> Maybe ByteString -> Maybe ByteString -> ByteString -> ByteString -> SignedQuery
- Aws.Query: sqAuthorization :: SignedQuery -> Maybe Ascii
+ Aws.Query: sqAuthorization :: SignedQuery -> Maybe ByteString
- Aws.Query: sqContentMd5 :: SignedQuery -> Maybe Ascii
+ Aws.Query: sqContentMd5 :: SignedQuery -> Maybe ByteString
- Aws.Query: sqContentType :: SignedQuery -> Maybe Ascii
+ Aws.Query: sqContentType :: SignedQuery -> Maybe ByteString
- Aws.Query: sqHost :: SignedQuery -> Ascii
+ Aws.Query: sqHost :: SignedQuery -> ByteString
- Aws.Query: sqPath :: SignedQuery -> Ascii
+ Aws.Query: sqPath :: SignedQuery -> ByteString
- Aws.S3.Info: Endpoint :: Ascii -> LocationConstraint -> [LocationConstraint] -> Endpoint
+ Aws.S3.Info: Endpoint :: ByteString -> LocationConstraint -> [LocationConstraint] -> Endpoint
- Aws.S3.Info: endpointHost :: Endpoint -> Ascii
+ Aws.S3.Info: endpointHost :: Endpoint -> ByteString
- Aws.S3.Query: S3Query :: Maybe Ascii -> Query -> Query -> S3Query
+ Aws.S3.Query: S3Query :: Maybe ByteString -> Query -> Query -> S3Query
- Aws.S3.Query: s3QBucket :: S3Query -> Maybe Ascii
+ Aws.S3.Query: s3QBucket :: S3Query -> Maybe ByteString
- Aws.SimpleDb.Info: SdbInfo :: Protocol -> Method -> Ascii -> Int -> SdbInfo
+ Aws.SimpleDb.Info: SdbInfo :: Protocol -> Method -> ByteString -> Int -> SdbInfo
- Aws.SimpleDb.Info: sdbApNortheast :: Ascii
+ Aws.SimpleDb.Info: sdbApNortheast :: ByteString
- Aws.SimpleDb.Info: sdbApSoutheast :: Ascii
+ Aws.SimpleDb.Info: sdbApSoutheast :: ByteString
- Aws.SimpleDb.Info: sdbEuWest :: Ascii
+ Aws.SimpleDb.Info: sdbEuWest :: ByteString
- Aws.SimpleDb.Info: sdbHttpGet :: Ascii -> SdbInfo
+ Aws.SimpleDb.Info: sdbHttpGet :: ByteString -> SdbInfo
- Aws.SimpleDb.Info: sdbHttpPost :: Ascii -> SdbInfo
+ Aws.SimpleDb.Info: sdbHttpPost :: ByteString -> SdbInfo
- Aws.SimpleDb.Info: sdbHttpsGet :: Ascii -> SdbInfo
+ Aws.SimpleDb.Info: sdbHttpsGet :: ByteString -> SdbInfo
- Aws.SimpleDb.Info: sdbHttpsPost :: Ascii -> SdbInfo
+ Aws.SimpleDb.Info: sdbHttpsPost :: ByteString -> SdbInfo
- Aws.SimpleDb.Info: sdbUsEast :: Ascii
+ Aws.SimpleDb.Info: sdbUsEast :: ByteString
- Aws.SimpleDb.Info: sdbUsWest :: Ascii
+ Aws.SimpleDb.Info: sdbUsWest :: ByteString
- Aws.SimpleDb.Info: sdbiHost :: SdbInfo -> Ascii
+ Aws.SimpleDb.Info: sdbiHost :: SdbInfo -> ByteString
- Aws.Util: fmtAmzTime :: UTCTime -> Ascii
+ Aws.Util: fmtAmzTime :: UTCTime -> ByteString
- Aws.Util: fmtRfc822Time :: UTCTime -> Ascii
+ Aws.Util: fmtRfc822Time :: UTCTime -> ByteString
- Aws.Util: fmtTime :: String -> UTCTime -> Ascii
+ Aws.Util: fmtTime :: String -> UTCTime -> ByteString
- Aws.Util: fmtTimeEpochSeconds :: UTCTime -> Ascii
+ Aws.Util: fmtTimeEpochSeconds :: UTCTime -> ByteString

Files

Aws/Query.hs view
@@ -7,7 +7,6 @@ import           Data.Maybe import           Data.Time import qualified Blaze.ByteString.Builder as Blaze-import qualified Data.Ascii               as A import qualified Data.ByteString          as B import qualified Data.ByteString.Lazy     as L import qualified Data.ByteString.UTF8     as BU@@ -18,14 +17,14 @@     = SignedQuery {         sqMethod :: Method       , sqProtocol :: Protocol-      , sqHost :: A.Ascii+      , sqHost :: B.ByteString       , sqPort :: Int-      , sqPath :: A.Ascii+      , sqPath :: B.ByteString       , sqQuery :: HTTP.Query       , sqDate :: Maybe UTCTime-      , sqAuthorization :: Maybe A.Ascii-      , sqContentType :: Maybe A.Ascii-      , sqContentMd5 :: Maybe A.Ascii+      , sqAuthorization :: Maybe B.ByteString+      , sqContentType :: Maybe B.ByteString+      , sqContentMd5 :: Maybe B.ByteString       , sqBody :: L.ByteString       , sqStringToSign :: B.ByteString       }@@ -49,7 +48,7 @@                                         , fmap (\auth -> ("Authorization", auth)) sqAuthorization]       , HTTP.requestBody = HTTP.RequestBodyLBS $ case sqMethod of                                                    Get -> L.empty-                                                   PostQuery -> Blaze.toLazyByteString . A.toBuilder $ HTTP.renderQueryBuilder False sqQuery+                                                   PostQuery -> Blaze.toLazyByteString $ HTTP.renderQueryBuilder False sqQuery       }     where contentType = case sqMethod of                            PostQuery -> Just "application/x-www-form-urlencoded; charset=utf-8"@@ -61,8 +60,8 @@        case sqProtocol of          HTTP -> "http://"          HTTPS -> "https://"-      , A.toByteString sqHost+      , sqHost       , if sqPort == defaultPort sqProtocol then "" else BU.fromString $ ':' : show sqPort-      , A.toByteString sqPath-      , A.toByteString $ HTTP.renderQuery True sqQuery+      , sqPath+      , HTTP.renderQuery True sqQuery       ]
Aws/S3/Commands/GetBucket.hs view
@@ -10,7 +10,6 @@ import           Control.Arrow         (second) import           Data.ByteString.Char8 ({- IsString -}) import           Data.Maybe-import qualified Data.Ascii            as A import qualified Data.ByteString.UTF8  as BU import qualified Network.HTTP.Types    as HTTP @@ -49,7 +48,7 @@ instance SignQuery GetBucket where     type Info GetBucket = S3Info     signQuery GetBucket {..} = s3SignQuery S3Query { -                                 s3QBucket = Just $ A.unsafeFromString gbBucket+                                 s3QBucket = Just $ BU.fromString gbBucket                                , s3QSubresources = []                                , s3QQuery = HTTP.simpleQueryToQuery $ map (second BU.fromString) $ catMaybes [                                               ("delimiter",) <$> gbDelimiter
Aws/S3/Info.hs view
@@ -5,7 +5,7 @@ import           Aws.Http import           Aws.S3.Model import           Data.Time-import qualified Data.Ascii   as A+import qualified Data.ByteString as B  data S3Authorization      = S3AuthorizationHeader @@ -14,7 +14,7 @@  data Endpoint     = Endpoint {-        endpointHost :: A.Ascii+        endpointHost :: B.ByteString       , endpointDefaultLocationConstraint :: LocationConstraint       , endpointAllowedLocationConstraints :: [LocationConstraint]       }
Aws/S3/Query.hs view
@@ -9,19 +9,19 @@ import           Aws.S3.Info import           Aws.Signature import           Aws.Util-import           Control.Applicative import           Data.List import           Data.Maybe import           Data.Monoid import           Data.Time-import qualified Data.Ascii           as A-import qualified Data.ByteString      as B-import qualified Data.ByteString.Lazy as L-import qualified Network.HTTP.Types   as HTTP+import qualified Blaze.ByteString.Builder       as Blaze+import qualified Blaze.ByteString.Builder.Char8 as Blaze8+import qualified Data.ByteString                as B+import qualified Data.ByteString.Lazy           as L+import qualified Network.HTTP.Types             as HTTP  data S3Query     = S3Query {-        s3QBucket :: Maybe A.Ascii+        s3QBucket :: Maybe B.ByteString       , s3QSubresources :: HTTP.Query       , s3QQuery :: HTTP.Query       }@@ -49,30 +49,29 @@       contentType = Nothing       path = mconcat . catMaybes $ [Just "/", s3QBucket]       sortedSubresources = sort s3QSubresources-      canonicalizedResource = A.fromAsciiBuilder . mconcat . catMaybes $-                              [ Just $ A.toAsciiBuilder "/"-                              , A.toAsciiBuilder <$> s3QBucket-                              , Just $ HTTP.renderQueryBuilder True sortedSubresources-                              ]+      canonicalizedResource = Blaze.copyByteString "/" `mappend`+                              maybe mempty Blaze.copyByteString s3QBucket `mappend`+                              HTTP.renderQueryBuilder True sortedSubresources       ti = case (s3UseUri, signatureTimeInfo) of              (False, ti') -> ti'              (True, AbsoluteTimestamp time) -> AbsoluteExpires $ s3DefaultExpiry `addUTCTime` time              (True, AbsoluteExpires time) -> AbsoluteExpires time       sig = signature signatureCredentials HmacSHA1 stringToSign-      stringToSign = B.intercalate "\n" $ concat [[A.toByteString $ httpMethod method]-                                                 , [fromMaybe "" contentMd5]-                                                 , [fromMaybe "" contentType]-                                                 , [A.toByteString $ case ti of-                                                                       AbsoluteTimestamp time -> fmtRfc822Time time-                                                                       AbsoluteExpires time -> fmtTimeEpochSeconds time]-                                                 , [] -- canonicalized AMZ headers-                                                 , [A.toByteString canonicalizedResource]]+      stringToSign = Blaze.toByteString . mconcat . intersperse (Blaze8.fromChar '\n') . concat  $+                       [[Blaze.copyByteString $ httpMethod method]+                       , [maybe mempty Blaze.copyByteString contentMd5]+                       , [maybe mempty Blaze.copyByteString contentType]+                       , [Blaze.copyByteString $ case ti of+                                                   AbsoluteTimestamp time -> fmtRfc822Time time+                                                   AbsoluteExpires time -> fmtTimeEpochSeconds time]+                       , [] -- canonicalized AMZ headers+                       , [canonicalizedResource]+                       ]       (authorization, authQuery) = case ti of-                                 AbsoluteTimestamp _ -> (Just $ A.unsafeFromByteString $ -                                                              B.concat ["AWS ", accessKeyID signatureCredentials, ":", sig], [])+                                 AbsoluteTimestamp _ -> (Just $ B.concat ["AWS ", accessKeyID signatureCredentials, ":", sig], [])                                  AbsoluteExpires time -> (Nothing, HTTP.simpleQueryToQuery $ makeAuthQuery time)       makeAuthQuery time-          = [("Expires", A.toByteString $ fmtTimeEpochSeconds time)+          = [("Expires", fmtTimeEpochSeconds time)             , ("AWSAccessKeyId", accessKeyID signatureCredentials)             , ("SignatureMethod", "HmacSHA256")             , ("Signature", sig)]
Aws/S3/Response.hs view
@@ -13,8 +13,8 @@ import           Data.Maybe import           Data.Word import           Text.XML.Monad-import qualified Data.Ascii                  as A import qualified Data.ByteString             as B+import qualified Data.ByteString.Char8       as B8 import qualified Data.Enumerator             as En import qualified Network.HTTP.Enumerator     as HTTPE import qualified Network.HTTP.Types          as HTTP@@ -30,7 +30,7 @@  instance (S3ResponseIteratee a) => ResponseIteratee (S3Response a) where     responseIteratee status headers = do-      let headerString = fromMaybe "" . fmap A.toString . flip lookup headers+      let headerString = fromMaybe "" . fmap B8.unpack . flip lookup headers       let amzId2 = headerString "x-amz-id-2"       let requestId = headerString "x-amz-request-id"       
Aws/SimpleDb/Info.hs view
@@ -3,40 +3,40 @@ where  import           Aws.Http-import qualified Data.Ascii as A+import qualified Data.ByteString as B  data SdbInfo     = SdbInfo {         sdbiProtocol :: Protocol       , sdbiHttpMethod :: Method-      , sdbiHost :: A.Ascii+      , sdbiHost :: B.ByteString       , sdbiPort :: Int       }     deriving (Show)              -sdbUsEast :: A.Ascii+sdbUsEast :: B.ByteString sdbUsEast = "sdb.amazonaws.com"  -sdbUsWest :: A.Ascii+sdbUsWest :: B.ByteString sdbUsWest = "sdb.us-west-1.amazonaws.com" -sdbEuWest :: A.Ascii+sdbEuWest :: B.ByteString sdbEuWest = "sdb.eu-west-1.amazonaws.com" -sdbApSoutheast :: A.Ascii+sdbApSoutheast :: B.ByteString sdbApSoutheast = "sdb.ap-southeast-1.amazonaws.com" -sdbApNortheast :: A.Ascii+sdbApNortheast :: B.ByteString sdbApNortheast = "sdb.ap-northeast-1.amazonaws.com"              -sdbHttpGet :: A.Ascii -> SdbInfo+sdbHttpGet :: B.ByteString -> SdbInfo sdbHttpGet endpoint = SdbInfo HTTP Get endpoint (defaultPort HTTP)                           -sdbHttpPost :: A.Ascii -> SdbInfo+sdbHttpPost :: B.ByteString -> SdbInfo sdbHttpPost endpoint = SdbInfo HTTP PostQuery endpoint (defaultPort HTTP)               -sdbHttpsGet :: A.Ascii -> SdbInfo+sdbHttpsGet :: B.ByteString -> SdbInfo sdbHttpsGet endpoint = SdbInfo HTTPS Get endpoint (defaultPort HTTPS)              -sdbHttpsPost :: A.Ascii -> SdbInfo+sdbHttpsPost :: B.ByteString -> SdbInfo sdbHttpsPost endpoint = SdbInfo HTTPS PostQuery endpoint (defaultPort HTTPS)
Aws/SimpleDb/Query.hs view
@@ -9,10 +9,12 @@ import           Aws.SimpleDb.Info import           Aws.Util import           Data.List-import qualified Data.Ascii           as A-import qualified Data.ByteString      as B-import qualified Data.ByteString.Lazy as L-import qualified Network.HTTP.Types   as HTTP+import           Data.Monoid+import qualified Blaze.ByteString.Builder       as Blaze+import qualified Blaze.ByteString.Builder.Char8 as Blaze8+import qualified Data.ByteString                as B+import qualified Data.ByteString.Lazy           as L+import qualified Network.HTTP.Types             as HTTP  sdbSignQuery :: [(B.ByteString, B.ByteString)] -> SdbInfo -> SignatureData -> SignedQuery sdbSignQuery q si sd@@ -36,8 +38,8 @@       ti = signatureTimeInfo sd       cr = signatureCredentials sd       queryAuth = [case ti of-                     AbsoluteTimestamp time -> ("Timestamp", A.toByteString $ fmtAmzTime time)-                     AbsoluteExpires   time -> ("Expires", A.toByteString $ fmtAmzTime time)+                     AbsoluteTimestamp time -> ("Timestamp", fmtAmzTime time)+                     AbsoluteExpires   time -> ("Expires", fmtAmzTime time)                   , ("AWSAccessKeyId", accessKeyID cr)                   , ("SignatureMethod", amzHash ah)                   , ("SignatureVersion", "2")@@ -47,5 +49,9 @@       host = sdbiHost si       path = "/"       sig = signature cr ah stringToSign-      stringToSign = B.intercalate "\n" $ map A.toByteString-                       [httpMethod method, host, path, HTTP.renderQuery False q']+      stringToSign = Blaze.toByteString . mconcat $ +                     intersperse (Blaze8.fromChar '\n')+                       [Blaze.copyByteString $ httpMethod method+                       , Blaze.copyByteString $ host+                       , Blaze.copyByteString $ path+                       , HTTP.renderQueryBuilder False q']
Aws/Util.hs view
@@ -5,12 +5,12 @@    import           Control.Arrow import           Control.Exception+import           Data.ByteString.Char8 ({- IsString -}) import           Data.Time import           System.Locale-import qualified Data.Ascii           as A-import qualified Data.ByteString      as B-import qualified Data.ByteString.UTF8 as BU-import qualified Data.Enumerator      as En+import qualified Data.ByteString       as B+import qualified Data.ByteString.UTF8  as BU+import qualified Data.Enumerator       as En  tryError :: (Exception e, Monad m) => En.Iteratee a m b -> En.Iteratee a m (Either e b) tryError m = En.catchError (fmap Right m) h@@ -34,14 +34,14 @@ awsFalse :: B.ByteString awsFalse = awsBool False -fmtTime :: String -> UTCTime -> A.Ascii-fmtTime s t = A.unsafeFromString $ formatTime defaultTimeLocale s t+fmtTime :: String -> UTCTime -> B.ByteString+fmtTime s t = BU.fromString $ formatTime defaultTimeLocale s t -fmtRfc822Time :: UTCTime -> A.Ascii+fmtRfc822Time :: UTCTime -> B.ByteString fmtRfc822Time = fmtTime "%a, %_d %b %Y %H:%M:%S GMT" -fmtAmzTime :: UTCTime -> A.Ascii+fmtAmzTime :: UTCTime -> B.ByteString fmtAmzTime = fmtTime "%Y-%m-%dT%H:%M:%S" -fmtTimeEpochSeconds :: UTCTime -> A.Ascii+fmtTimeEpochSeconds :: UTCTime -> B.ByteString fmtTimeEpochSeconds = fmtTime "%s"
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.0.2+Version:             0.0.3  -- A short (one-line) description of the package. Synopsis:            Amazon Web Services (AWS) for Haskell@@ -90,20 +90,19 @@      -- Packages needed in order to build this package.   Build-depends:-                       ascii >=0.0.2 && <0.1,                        base ==4.*,                        base64-bytestring ==0.1.*,-                       blaze-builder >=0.2.1.4 && <0.3,+                       blaze-builder >=0.2.1.4 && <0.4,                        bytestring ==0.9.*,                        cereal ==0.3.*,-                       containers ==0.3.*,+                       containers >=0.3 && <0.5,                        crypto-api ==0.5.*,                        cryptohash ==0.6.*,-                       directory ==1.0.*,+                       directory >=1.0 && <1.2,                        enumerator ==0.4.*,-                       filepath ==1.1.*,-                       http-enumerator >=0.4.0.1 && < 0.5,-                       http-types >=0.5.3 && <0.6,+                       filepath >=1.1 && <1.3,+                       http-enumerator >=0.5 && < 0.6,+                       http-types >=0.6 && <0.7,                        mtl ==2.*,                        old-locale ==1.*,                        shortcircuit ==0.1.*,