diff --git a/src/Network/Minio/API.hs b/src/Network/Minio/API.hs index 64d980f..08bb775 100644 --- a/src/Network/Minio/API.hs +++ b/src/Network/Minio/API.hs @@ -36,11 +36,11 @@ import Network.Minio.Sign.V4 executeRequest :: RequestInfo -> Minio (Response LByteString) executeRequest ri = do - let PayloadSingle pload = payload ri + let PayloadSingle pload = riPayload ri phash = hashSHA256 pload newRI = ri { - payloadHash = phash - , headers = ("x-amz-content-sha256", phash) : (headers ri) + riPayloadHash = phash + , riHeaders = ("x-amz-content-sha256", phash) : (riHeaders ri) } ci <- asks mcConnInfo @@ -50,12 +50,12 @@ executeRequest ri = do mgr <- asks mcConnManager let req = NC.defaultRequest { - NC.method = method newRI + NC.method = riMethod newRI , NC.secure = connectIsSecure ci , NC.host = encodeUtf8 $ connectHost ci , NC.port = connectPort ci , NC.path = getPathFromRI ri - , NC.queryString = HT.renderQuery False $ queryParams ri + , NC.queryString = HT.renderQuery False $ riQueryParams ri , NC.requestHeaders = reqHeaders , NC.requestBody = NC.RequestBodyBS pload } @@ -65,11 +65,11 @@ executeRequest ri = do mkStreamRequest :: RequestInfo -> Minio (Response (C.ResumableSource Minio ByteString)) mkStreamRequest ri = do - let PayloadSingle pload = payload ri + let PayloadSingle pload = riPayload ri phash = hashSHA256 pload newRI = ri { - payloadHash = phash - , headers = ("x-amz-content-sha256", phash) : (headers ri) + riPayloadHash = phash + , riHeaders = ("x-amz-content-sha256", phash) : (riHeaders ri) } ci <- asks mcConnInfo @@ -79,12 +79,12 @@ mkStreamRequest ri = do mgr <- asks mcConnManager let req = NC.defaultRequest { - NC.method = method newRI + NC.method = riMethod newRI , NC.secure = connectIsSecure ci , NC.host = encodeUtf8 $ connectHost ci , NC.port = connectPort ci , NC.path = getPathFromRI ri - , NC.queryString = HT.renderQuery False $ queryParams ri + , NC.queryString = HT.renderQuery False $ riQueryParams ri , NC.requestHeaders = reqHeaders , NC.requestBody = NC.RequestBodyBS pload } diff --git a/src/Network/Minio/Data.hs b/src/Network/Minio/Data.hs index f6f04c9..f1b4b82 100644 --- a/src/Network/Minio/Data.hs +++ b/src/Network/Minio/Data.hs @@ -61,25 +61,25 @@ data Payload = PayloadSingle ByteString deriving (Show, Eq) data RequestInfo = RequestInfo { - method :: Method - , bucket :: Maybe Bucket - , object :: Maybe Object - , queryParams :: Query - , headers :: [Header] - , payload :: Payload - , payloadHash :: ByteString - , region :: Maybe Location + riMethod :: Method + , riBucket :: Maybe Bucket + , riObject :: Maybe Object + , riQueryParams :: Query + , riHeaders :: [Header] + , riPayload :: Payload + , riPayloadHash :: ByteString + , riRegion :: Maybe Location } getPathFromRI :: RequestInfo -> ByteString getPathFromRI ri = B.concat $ parts where - objPart = maybe [] (\o -> ["/", encodeUtf8 o]) $ object ri - parts = maybe ["/"] (\b -> "/" : encodeUtf8 b : objPart) $ bucket ri + objPart = maybe [] (\o -> ["/", encodeUtf8 o]) $ riObject ri + parts = maybe ["/"] (\b -> "/" : encodeUtf8 b : objPart) $ riBucket ri getRegionFromRI :: RequestInfo -> Text -getRegionFromRI ri = maybe "us-east-1" identity (region ri) +getRegionFromRI ri = maybe "us-east-1" identity (riRegion ri) data MinioErr = MErrMsg ByteString | MErrHttp HttpException diff --git a/src/Network/Minio/Sign/V4.hs b/src/Network/Minio/Sign/V4.hs index f101a55..3b2df3e 100644 --- a/src/Network/Minio/Sign/V4.hs +++ b/src/Network/Minio/Sign/V4.hs @@ -77,14 +77,14 @@ signV4 ci ri = do -- an updated list of headers. signV4AtTime :: UTCTime -> ConnectInfo -> RequestInfo -> SignV4Data signV4AtTime ts ci ri = - SignV4Data ts scope canonicalRequest headersToSign (headers ri) outHeaders stringToSign signingKey + SignV4Data ts scope canonicalRequest headersToSign (riHeaders ri) outHeaders stringToSign signingKey where outHeaders = authHeader : headersWithDate timeBS = awsTimeFormatBS ts dateHeader = (mk "X-Amz-Date", timeBS) hostHeader = (mk "host", encodeUtf8 $ connectHost ci) - headersWithDate = dateHeader : hostHeader : (headers ri) + headersWithDate = dateHeader : hostHeader : (riHeaders ri) authHeader = (mk "Authorization", authHeaderValue) @@ -134,12 +134,12 @@ getHeadersToSign h = getCanonicalRequest :: RequestInfo -> [(ByteString, ByteString)] -> ByteString getCanonicalRequest ri headersForSign = B.intercalate "\n" $ [ - method ri, + riMethod ri, uriEncode False path, canonicalQueryString, canonicalHeaders, signedHeaders, - payloadHash ri + riPayloadHash ri ] where path = getPathFromRI ri @@ -148,7 +148,7 @@ getCanonicalRequest ri headersForSign = B.intercalate "\n" $ [ map (\(x, y) -> B.concat [x, "=", y]) $ sort $ map (\(x, y) -> (uriEncode True x, maybe "" (uriEncode True) y)) $ - queryParams ri + riQueryParams ri canonicalHeaders = B.concat $ map (\(x, y) -> B.concat [x, ":", y, "\n"]) $