From 0648e4965e8723812a9e91ff8d92f4f99bc64f7b Mon Sep 17 00:00:00 2001 From: Krishnan Parthasarathi Date: Mon, 9 Jan 2017 19:09:55 +0530 Subject: [PATCH] Fix getObject to throw error on failure --- src/Network/Minio/S3API.hs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Network/Minio/S3API.hs b/src/Network/Minio/S3API.hs index 8ace2b8..78d6e02 100644 --- a/src/Network/Minio/S3API.hs +++ b/src/Network/Minio/S3API.hs @@ -41,7 +41,11 @@ getObject :: Bucket -> Object -> HT.Query -> [HT.Header] -> Minio ([HT.Header], C.ResumableSource Minio ByteString) getObject bucket object queryParams headers = do resp <- mkStreamRequest reqInfo - return $ (NC.responseHeaders resp, NC.responseBody resp) + let httpStatusCode = HT.statusCode $ NC.responseStatus resp + if httpStatusCode >= 200 && httpStatusCode < 300 + then return $ (NC.responseHeaders resp, NC.responseBody resp) + else do errMsg <- NC.lbsResponse resp + throwError $ MErrXml $ LBS.toStrict $ NC.responseBody errMsg where reqInfo = requestInfo HT.methodGet (Just bucket) (Just object) queryParams headers (PayloadSingle "")