packages feed

minio-hs 1.5.1 → 1.5.2

raw patch · 28 files changed

+315/−235 lines, 28 filesdep +optparse-applicativedep −temporarydep ~aesondep ~base64-bytestringdep ~binarynew-component:exe:BucketExistsnew-component:exe:CopyObjectnew-component:exe:FileUploadernew-component:exe:GetConfignew-component:exe:GetObjectnew-component:exe:HeadObjectnew-component:exe:Healnew-component:exe:ListBucketsnew-component:exe:ListIncompleteUploadsnew-component:exe:ListObjectsnew-component:exe:MakeBucketnew-component:exe:PresignedGetObjectnew-component:exe:PresignedPostPolicynew-component:exe:PresignedPutObjectnew-component:exe:PutObjectnew-component:exe:RemoveBucketnew-component:exe:RemoveIncompleteUploadnew-component:exe:RemoveObjectnew-component:exe:SelectObjectnew-component:exe:ServerInfonew-component:exe:ServiceSendRestartnew-component:exe:ServiceSendStopnew-component:exe:ServiceStatusnew-component:exe:SetConfig

Dependencies added: optparse-applicative

Dependencies removed: temporary

Dependency ranges changed: aeson, base64-bytestring, binary, bytestring, case-insensitive, conduit, conduit-extra, cryptonite, cryptonite-conduit, digest, filepath, http-client, http-conduit, http-types, memory, protolude, resourcet, text, time, transformers, unliftio, unliftio-core, unordered-containers, xml-conduit

Files

CHANGELOG.md view
@@ -1,6 +1,13 @@ Changelog ========== +## Version 1.5.2++* Fix region `us-west-2` for AWS S3 (#139)+* Build examples in CI+* Disable live-server tests by default, but run them in CI+* Drop support for GHC 8.2.x+ ## Version 1.5.1  * Add support for GHC 8.8
README.md view
@@ -8,43 +8,42 @@  ## Installation -```sh-git clone https://github.com/minio/minio-hs.git+### Add to your project -cd minio-hs/+Simply add `minio-hs` to your project's `.cabal` dependencies section or if you are using hpack, to your `package.yaml` file as usual. -stack install-```+### Try it out directly with `ghci` -Tests can be run with:+From your home folder or any non-haskell project directory, just run:  ```sh -stack test+stack install minio-hs  ``` -A section of the tests use the remote MinIO Play server at-`https://play.min.io` by default. For library development,-using this remote server maybe slow. To run the tests against a-locally running MinIO live server at `http://localhost:9000`, just set-the environment `MINIO_LOCAL` to any value (and unset it to switch-back to Play).--Documentation can be locally built with:+Then start an interpreter session and browse the available APIs with:  ```sh -stack haddock-+$ stack ghci+> :browse Network.Minio ``` -## Quick-Start Example - File Uploader+## Examples +The [examples](https://github.com/minio/minio-hs/tree/master/examples) folder contains many examples that you can try out and use to learn and to help with developing your own projects.++### Quick-Start Example - File Uploader++This example program connects to a MinIO object storage server, makes a bucket on the server and then uploads a file to the bucket.++We will use the MinIO server running at https://play.min.io in this example. Feel free to use this service for testing and development. Access credentials are present in the library and are open to the public.+ ### FileUploader.hs ``` haskell #!/usr/bin/env stack--- stack --resolver lts-11.1 runghc --package minio-hs --package optparse-applicative --package filepath+-- stack --resolver lts-14.11 runghc --package minio-hs --package optparse-applicative --package filepath  -- -- MinIO Haskell SDK, (C) 2017-2019 MinIO, Inc.@@ -106,16 +105,19 @@   res <- runMinio minioPlayCI $ do     -- Make a bucket; catch bucket already exists exception if thrown.     bErr <- try $ makeBucket bucket Nothing++    -- If the bucket already exists, we would get a specific+    -- `ServiceErr` exception thrown.     case bErr of-      Left (MErrService BucketAlreadyOwnedByYou) -> return ()-      Left e                                     -> throwIO e-      Right _                                    -> return ()+      Left BucketAlreadyOwnedByYou -> return ()+      Left e                       -> throwIO e+      Right _                      -> return () -    -- Upload filepath to bucket; object is derived from filepath.-    fPutObject bucket object filepath def+    -- Upload filepath to bucket; object name is derived from filepath.+    fPutObject bucket object filepath defaultPutObjectOptions    case res of-    Left e   -> putStrLn $ "file upload failed due to " ++ (show e)+    Left e   -> putStrLn $ "file upload failed due to " ++ show e     Right () -> putStrLn "file upload succeeded." ``` @@ -129,3 +131,47 @@ ## Contribute  [Contributors Guide](https://github.com/minio/minio-hs/blob/master/CONTRIBUTING.md)++### Development++To setup:++```sh+git clone https://github.com/minio/minio-hs.git++cd minio-hs/++stack install+```++Tests can be run with:++```sh++stack test++```++A section of the tests use the remote MinIO Play server at `https://play.min.io` by default. For library development, using this remote server maybe slow. To run the tests against a locally running MinIO live server at `http://localhost:9000`, just set the environment `MINIO_LOCAL` to any value (and unset it to switch back to Play).++To run the live server tests, set a build flag as shown below:++```sh++stack test --flag minio-hs:live-test++# OR against a local MinIO server with:++MINIO_LOCAL=1 stack test --flag minio-hs:live-test++```++The configured CI system always runs both test-suites for every change.++Documentation can be locally built with:++```sh++stack haddock++```
examples/BucketExists.hs view
@@ -1,5 +1,5 @@ #!/usr/bin/env stack--- stack --resolver lts-11.1 runghc --package minio-hs+-- stack --resolver lts-14.11 runghc --package minio-hs  -- -- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.
examples/CopyObject.hs view
@@ -1,5 +1,5 @@ #!/usr/bin/env stack--- stack --resolver lts-11.1 runghc --package minio-hs+-- stack --resolver lts-14.11 runghc --package minio-hs  -- -- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.@@ -20,8 +20,7 @@ {-# LANGUAGE OverloadedStrings #-} import           Network.Minio -import           Control.Monad.Catch (catchIf)-import           Prelude+import           UnliftIO.Exception (catch, throwIO)  -- | The following example uses minio's play server at -- https://play.min.io.  The endpoint and associated@@ -30,9 +29,6 @@ -- > minioPlayCI :: ConnectInfo -- -ignoreMinioErr :: ServiceErr -> Minio ()-ignoreMinioErr = return . const ()- main :: IO () main = do   let@@ -43,13 +39,18 @@    res1 <- runMinio minioPlayCI $ do     -- 1. Make a bucket; Catch BucketAlreadyOwnedByYou exception.-    catchIf (== BucketAlreadyOwnedByYou) (makeBucket bucket Nothing) ignoreMinioErr+    catch (makeBucket bucket Nothing) (+      \e -> case e of+              BucketAlreadyOwnedByYou -> return ()+              _ -> throwIO e+      )      -- 2. Upload a file to bucket/object.-    fPutObject bucket object localFile+    fPutObject bucket object localFile defaultPutObjectOptions      -- 3. Copy bucket/object to bucket/objectCopy.-    copyObject def {dstBucket = bucket, dstObject = objectCopy} def { srcBucket = bucket , srcObject = object }+    copyObject defaultDestinationInfo {dstBucket = bucket, dstObject = objectCopy}+               defaultSourceInfo { srcBucket = bucket , srcObject = object }    case res1 of     Left e   -> putStrLn $ "copyObject failed." ++ show e
examples/FileUploader.hs view
@@ -1,5 +1,5 @@ #!/usr/bin/env stack--- stack --resolver lts-11.1 runghc --package minio-hs --package optparse-applicative --package filepath+-- stack --resolver lts-14.11 runghc --package minio-hs --package optparse-applicative --package filepath  -- -- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.@@ -43,6 +43,7 @@                (metavar "FILENAME"                 <> help "Name of file to upload to AWS S3 or a MinIO server") +cmdParser :: ParserInfo FilePath cmdParser = info             (helper <*> fileNameArgs)             (fullDesc@@ -62,12 +63,12 @@     -- Make a bucket; catch bucket already exists exception if thrown.     bErr <- try $ makeBucket bucket Nothing     case bErr of-      Left (MErrService BucketAlreadyOwnedByYou) -> return ()-      Left e                                     -> throwIO e-      Right _                                    -> return ()+      Left BucketAlreadyOwnedByYou -> return ()+      Left e                       -> throwIO e+      Right _                      -> return ()      -- Upload filepath to bucket; object is derived from filepath.-    fPutObject bucket object filepath def+    fPutObject bucket object filepath defaultPutObjectOptions    case res of     Left e   -> putStrLn $ "file upload failed due to " ++ (show e)
examples/GetConfig.hs view
@@ -1,5 +1,5 @@ #!/usr/bin/env stack--- stack --resolver lts-11.1 runghc --package minio-hs+-- stack --resolver lts-14.11 runghc --package minio-hs  -- -- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.@@ -25,6 +25,6 @@  main :: IO () main = do-  res <- runMinio def $+  res <- runMinio minioPlayCI $       getConfig   print res
examples/GetObject.hs view
@@ -1,5 +1,5 @@ #!/usr/bin/env stack--- stack --resolver lts-11.1 runghc --package minio-hs+-- stack --resolver lts-14.11 runghc --package minio-hs  -- -- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.@@ -38,8 +38,8 @@       bucket = "my-bucket"       object = "my-object"   res <- runMinio minioPlayCI $ do-    src <- getObject bucket object def-    C.connect src $ CB.sinkFileCautious "/tmp/my-object"+    src <- getObject bucket object defaultGetObjectOptions+    C.connect (gorObjectStream src) $ CB.sinkFileCautious "/tmp/my-object"    case res of     Left e  -> putStrLn $ "getObject failed." ++ (show e)
examples/HeadObject.hs view
@@ -1,5 +1,5 @@ #!/usr/bin/env stack--- stack --resolver lts-11.1 runghc --package minio-hs+-- stack --resolver lts-14.11 runghc --package minio-hs  -- -- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.@@ -36,7 +36,7 @@       bucket = "test"       object = "passwd"   res <- runMinio minioPlayCI $-    headObject bucket object+    headObject bucket object []    case res of     Left e        -> putStrLn $ "headObject failed." ++ show e
examples/Heal.hs view
@@ -1,5 +1,5 @@ #!/usr/bin/env stack--- stack --resolver lts-11.1 runghc --package minio-hs+-- stack --resolver lts-14.11 runghc --package minio-hs  -- -- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.@@ -25,7 +25,7 @@  main :: IO () main = do-  res <- runMinio def $+  res <- runMinio minioPlayCI $     do       hsr <- startHeal Nothing Nothing HealOpts { hoRecursive = True                                                 , hoDryRun = False
examples/ListBuckets.hs view
@@ -1,5 +1,5 @@ #!/usr/bin/env stack--- stack --resolver lts-11.1 runghc --package minio-hs+-- stack --resolver lts-14.11 runghc --package minio-hs  -- -- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.
examples/ListIncompleteUploads.hs view
@@ -1,5 +1,5 @@ #!/usr/bin/env stack--- stack --resolver lts-11.1 runghc --package minio-hs+-- stack --resolver lts-14.11 runghc --package minio-hs  -- -- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.
examples/ListObjects.hs view
@@ -1,5 +1,5 @@ #!/usr/bin/env stack--- stack --resolver lts-11.1 runghc --package minio-hs+-- stack --resolver lts-14.11 runghc --package minio-hs  -- -- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.
examples/MakeBucket.hs view
@@ -1,5 +1,5 @@ #!/usr/bin/env stack--- stack --resolver lts-11.1 runghc --package minio-hs+-- stack --resolver lts-14.11 runghc --package minio-hs  -- -- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.
examples/PresignedGetObject.hs view
@@ -1,5 +1,5 @@ #!/usr/bin/env stack--- stack --resolver lts-11.1 runghc --package minio-hs+-- stack --resolver lts-14.11 runghc --package minio-hs  -- -- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.@@ -47,11 +47,11 @@    res <- runMinio minioPlayCI $ do     liftIO $ B.putStrLn "Upload a file that we will fetch with a presigned URL..."-    putObject bucket object (CC.repeat "a") (Just kb15) def+    putObject bucket object (CC.repeat "a") (Just kb15) defaultPutObjectOptions     liftIO $ putStrLn $ "Done. Object created at: my-bucket/my-object"      -- Extract Etag of uploaded object-    oi <- statObject bucket object+    oi <- statObject bucket object defaultGetObjectOptions     let etag = oiETag oi      -- Set header to add an if-match constraint - this makes sure@@ -68,7 +68,7 @@    case res of     Left e -> putStrLn $ "presignedPutObject URL failed." ++ show e-    Right (headers, etag, url) -> do+    Right (headers, _, url) -> do        -- We generate a curl command to demonstrate usage of the signed       -- URL.
examples/PresignedPostPolicy.hs view
@@ -1,5 +1,5 @@ #!/usr/bin/env stack--- stack --resolver lts-11.1 runghc --package minio-hs+-- stack --resolver lts-14.11 runghc --package minio-hs  -- -- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.@@ -38,7 +38,7 @@   now <- Time.getCurrentTime   let     bucket = "my-bucket"-    object = "my-object"+    object = "photos/my-object"      -- set an expiration time of 10 days     expireTime = Time.addUTCTime (3600 * 24 * 10) now@@ -47,9 +47,9 @@     -- conditions are validated, newPostPolicy returns an Either value     policyE = newPostPolicy expireTime               [ -- set the object name condition-                ppCondKey "photos/my-object"+                ppCondKey object                 -- set the bucket name condition-              , ppCondBucket "my-bucket"+              , ppCondBucket bucket                 -- set the size range of object as 1B to 10MiB               , ppCondContentLengthRange 1 (10*1024*1024)                 -- set content type as jpg image
examples/PresignedPutObject.hs view
@@ -1,5 +1,5 @@ #!/usr/bin/env stack--- stack --resolver lts-11.1 runghc --package minio-hs+-- stack --resolver lts-14.11 runghc --package minio-hs  -- -- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.
examples/PutObject.hs view
@@ -1,5 +1,5 @@ #!/usr/bin/env stack--- stack --resolver lts-11.1 runghc --package minio-hs+-- stack --resolver lts-14.11 runghc --package minio-hs  -- -- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.@@ -41,14 +41,14 @@    -- Eg 1. Upload a stream of repeating "a" using putObject with default options.   res1 <- runMinio minioPlayCI $-    putObject bucket object (CC.repeat "a") (Just kb15) def+    putObject bucket object (CC.repeat "a") (Just kb15) defaultPutObjectOptions   case res1 of     Left e   -> putStrLn $ "putObject failed." ++ show e     Right () -> putStrLn "putObject succeeded."    -- Eg 2. Upload a file using fPutObject with default options.   res2 <- runMinio minioPlayCI $-    fPutObject bucket object localFile def+    fPutObject bucket object localFile defaultPutObjectOptions   case res2 of     Left e   -> putStrLn $ "fPutObject failed." ++ show e     Right () -> putStrLn "fPutObject succeeded."
examples/RemoveBucket.hs view
@@ -1,5 +1,5 @@ #!/usr/bin/env stack--- stack --resolver lts-11.1 runghc --package minio-hs+-- stack --resolver lts-14.11 runghc --package minio-hs  -- -- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.
examples/RemoveIncompleteUpload.hs view
@@ -1,5 +1,5 @@ #!/usr/bin/env stack--- stack --resolver lts-11.1 runghc --package minio-hs+-- stack --resolver lts-14.11 runghc --package minio-hs  -- -- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.
examples/RemoveObject.hs view
@@ -1,5 +1,5 @@ #!/usr/bin/env stack--- stack --resolver lts-11.1 runghc --package minio-hs+-- stack --resolver lts-14.11 runghc --package minio-hs  -- -- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.
examples/SelectObject.hs view
@@ -1,5 +1,5 @@ #!/usr/bin/env stack--- stack --resolver lts-13.1 runghc --package minio-hs+-- stack --resolver lts-14.11 runghc --package minio-hs  -- -- MinIO Haskell SDK, (C) 2019 MinIO, Inc.@@ -22,7 +22,6 @@  import qualified Conduit              as C import           Control.Monad        (when)-import qualified Data.ByteString.Lazy as LB  import           Prelude 
examples/ServerInfo.hs view
@@ -1,5 +1,5 @@ #!/usr/bin/env stack--- stack --resolver lts-11.1 runghc --package minio-hs+-- stack --resolver lts-14.11 runghc --package minio-hs  -- -- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.@@ -25,6 +25,6 @@  main :: IO () main = do-  res <- runMinio def $+  res <- runMinio minioPlayCI $     getServerInfo   print res
examples/ServiceSendRestart.hs view
@@ -1,5 +1,5 @@ #!/usr/bin/env stack--- stack --resolver lts-11.1 runghc --package minio-hs+-- stack --resolver lts-14.11 runghc --package minio-hs  -- -- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.@@ -25,6 +25,6 @@  main :: IO () main = do-  res <- runMinio def $+  res <- runMinio minioPlayCI $     serviceSendAction ServiceActionRestart   print res
examples/ServiceSendStop.hs view
@@ -1,5 +1,5 @@ #!/usr/bin/env stack--- stack --resolver lts-11.1 runghc --package minio-hs+-- stack --resolver lts-14.11 runghc --package minio-hs  -- -- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.@@ -25,6 +25,6 @@  main :: IO () main = do-  res <- runMinio def $+  res <- runMinio minioPlayCI $     serviceSendAction ServiceActionStop   print res
examples/ServiceStatus.hs view
@@ -1,5 +1,5 @@ #!/usr/bin/env stack--- stack --resolver lts-11.1 runghc --package minio-hs+-- stack --resolver lts-14.11 runghc --package minio-hs  -- -- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.@@ -25,6 +25,6 @@  main :: IO () main = do-  res <- runMinio def $+  res <- runMinio minioPlayCI $     serviceStatus   print res
examples/SetConfig.hs view
@@ -1,5 +1,5 @@ #!/usr/bin/env stack--- stack --resolver lts-11.1 runghc --package minio-hs+-- stack --resolver lts-14.11 runghc --package minio-hs  -- -- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.@@ -25,7 +25,7 @@  main :: IO () main = do-  res <- runMinio def $+  res <- runMinio minioPlayCI $     do       let config = "{\"version\":\"25\",\"credential\":{\"accessKey\":\"minio\",\"secretKey\":\"minio123\"},\"region\":\"\",\"browser\":\"on\",\"worm\":\"off\",\"domain\":\"\",\"storageclass\":{\"standard\":\"\",\"rrs\":\"\"},\"cache\":{\"drives\":[],\"expiry\":90,\"exclude\":[]},\"notify\":{\"amqp\":{\"2\":{\"enable\":false,\"url\":\"amqp://guest:guest@localhost:5672/\",\"exchange\":\"minio\",\"routingKey\":\"minio\",\"exchangeType\":\"direct\",\"deliveryMode\":0,\"mandatory\":false,\"immediate\":false,\"durable\":false,\"internal\":false,\"noWait\":false,\"autoDeleted\":false}},\"elasticsearch\":{\"1\":{\"enable\":false,\"format\":\"namespace\",\"url\":\"http://localhost:9200\",\"index\":\"minio_events\"}},\"kafka\":{\"1\":{\"enable\":false,\"brokers\":null,\"topic\":\"\"}},\"mqtt\":{\"1\":{\"enable\":false,\"broker\":\"\",\"topic\":\"\",\"qos\":0,\"clientId\":\"\",\"username\":\"\",\"password\":\"\",\"reconnectInterval\":0,\"keepAliveInterval\":0}},\"mysql\":{\"1\":{\"enable\":false,\"format\":\"namespace\",\"dsnString\":\"\",\"table\":\"\",\"host\":\"\",\"port\":\"\",\"user\":\"\",\"password\":\"\",\"database\":\"\"}},\"nats\":{\"1\":{\"enable\":false,\"address\":\"\",\"subject\":\"\",\"username\":\"\",\"password\":\"\",\"token\":\"\",\"secure\":false,\"pingInterval\":0,\"streaming\":{\"enable\":false,\"clusterID\":\"\",\"clientID\":\"\",\"async\":false,\"maxPubAcksInflight\":0}}},\"postgresql\":{\"1\":{\"enable\":false,\"format\":\"namespace\",\"connectionString\":\"\",\"table\":\"\",\"host\":\"\",\"port\":\"\",\"user\":\"\",\"password\":\"\",\"database\":\"\"}},\"redis\":{\"test1\":{\"enable\":true,\"format\":\"namespace\",\"address\":\"127.0.0.1:6379\",\"password\":\"\",\"key\":\"bucketevents_ns\"},\"test2\":{\"enable\":true,\"format\":\"access\",\"address\":\"127.0.0.1:6379\",\"password\":\"\",\"key\":\"bucketevents_log\"}},\"webhook\":{\"1\":{\"enable\":true,\"endpoint\":\"http://localhost:3000\"},\"2\":{\"enable\":true,\"endpoint\":\"http://localhost:3001\"}}}}"       setConfig config
minio-hs.cabal view
@@ -1,5 +1,6 @@+cabal-version:       2.2 name:                minio-hs-version:             1.5.1+version:             1.5.2 synopsis:            A MinIO Haskell Library for Amazon S3 compatible cloud                      storage. description:         The MinIO Haskell client library provides simple APIs to@@ -21,14 +22,21 @@                    README.md                    stack.yaml -cabal-version:       >=1.10 -library-  hs-source-dirs:      src+common base-settings   ghc-options:         -Wall-  exposed-modules:     Network.Minio-                     , Network.Minio.AdminAPI-                     , Network.Minio.S3API+  default-language:    Haskell2010+  default-extensions:  BangPatterns+                     , FlexibleContexts+                     , FlexibleInstances+                     , MultiParamTypeClasses+                     , MultiWayIf+                     , NoImplicitPrelude+                     , OverloadedStrings+                     , RankNTypes+                     , ScopedTypeVariables+                     , TypeFamilies+                     , TupleSections   other-modules:       Lib.Prelude                      , Network.Minio.API                      , Network.Minio.APICommon@@ -79,192 +87,210 @@                      , unliftio-core >= 0.1                      , unordered-containers >= 0.2                      , xml-conduit >= 1.8-  default-language:    Haskell2010-  default-extensions:  BangPatterns-                     , FlexibleContexts-                     , FlexibleInstances-                     , MultiParamTypeClasses-                     , MultiWayIf-                     , NoImplicitPrelude-                     , OverloadedStrings-                     , RankNTypes-                     , ScopedTypeVariables-                     , TypeFamilies-                     , TupleSections +library+  import:              base-settings+  hs-source-dirs:      src+  exposed-modules:     Network.Minio+                     , Network.Minio.AdminAPI+                     , Network.Minio.S3API+ Flag live-test-  Default: True+  Description: Build the test suite that runs against a live MinIO server+  Default: False   Manual: True  test-suite minio-hs-live-server-test+  import:              base-settings   type:                exitcode-stdio-1.0   hs-source-dirs:      test, src   main-is:             LiveServer.hs   ghc-options:         -Wall -threaded -rtsopts -with-rtsopts=-N-  default-language:    Haskell2010-  default-extensions:  BangPatterns-                     , FlexibleContexts-                     , FlexibleInstances-                     , MultiParamTypeClasses-                     , MultiWayIf-                     , NoImplicitPrelude-                     , OverloadedStrings-                     , RankNTypes-                     , ScopedTypeVariables-                     , TupleSections-                     , TypeFamilies-  other-modules:       Lib.Prelude-                     , Network.Minio-                     , Network.Minio.API-                     , Network.Minio.API.Test-                     , Network.Minio.APICommon+  other-modules:       Network.Minio+                     , Network.Minio.S3API                      , Network.Minio.AdminAPI-                     , Network.Minio.CopyObject-                     , Network.Minio.Data-                     , Network.Minio.Data.ByteString-                     , Network.Minio.Data.Crypto-                     , Network.Minio.Data.Time-                     , Network.Minio.Errors-                     , Network.Minio.JsonParser+                     , Network.Minio.API.Test                      , Network.Minio.JsonParser.Test-                     , Network.Minio.ListOps-                     , Network.Minio.PresignedOperations-                     , Network.Minio.PutObject-                     , Network.Minio.S3API-                     , Network.Minio.SelectAPI-                     , Network.Minio.Sign.V4                      , Network.Minio.TestHelpers-                     , Network.Minio.Utils                      , Network.Minio.Utils.Test-                     , Network.Minio.XmlGenerator                      , Network.Minio.XmlGenerator.Test-                     , Network.Minio.XmlParser                      , Network.Minio.XmlParser.Test-  build-depends:       base >= 4.7 && < 5-                     , minio-hs-                     , protolude >= 0.1.6-                     , QuickCheck-                     , aeson-                     , base64-bytestring-                     , binary-                     , bytestring-                     , case-insensitive-                     , conduit-                     , conduit-extra-                     , connection-                     , cryptonite-                     , cryptonite-conduit-                     , digest-                     , directory-                     , exceptions-                     , filepath-                     , http-client-                     , http-client-tls-                     , http-conduit-                     , http-types-                     , ini-                     , memory-                     , raw-strings-qq >= 1-                     , resourcet-                     , retry+  build-depends:       minio-hs                      , tasty                      , tasty-hunit                      , tasty-quickcheck                      , tasty-smallcheck-                     , temporary-                     , text-                     , time-                     , transformers-                     , unliftio-                     , unliftio-core-                     , unordered-containers-                     , xml-conduit+                     , QuickCheck   if !flag(live-test)     buildable: False  test-suite minio-hs-test+  import:              base-settings   type:                exitcode-stdio-1.0   hs-source-dirs:      test, src   main-is:             Spec.hs-  build-depends:       base >= 4.7 && < 5-                     , minio-hs-                     , protolude >= 0.1.6+  build-depends:       minio-hs                      , QuickCheck-                     , aeson-                     , base64-bytestring-                     , binary-                     , bytestring-                     , case-insensitive-                     , conduit-                     , conduit-extra-                     , connection-                     , cryptonite-                     , cryptonite-conduit-                     , digest-                     , directory-                     , exceptions-                     , filepath-                     , http-client-                     , http-client-tls-                     , http-conduit-                     , http-types-                     , ini-                     , memory-                     , raw-strings-qq >= 1-                     , resourcet-                     , retry                      , tasty                      , tasty-hunit                      , tasty-quickcheck                      , tasty-smallcheck-                     , temporary-                     , text-                     , time-                     , transformers-                     , unliftio-                     , unliftio-core-                     , unordered-containers-                     , xml-conduit   ghc-options:         -Wall -threaded -rtsopts -with-rtsopts=-N-  default-language:    Haskell2010-  default-extensions:  BangPatterns-                     , FlexibleContexts-                     , FlexibleInstances-                     , MultiParamTypeClasses-                     , MultiWayIf-                     , NoImplicitPrelude-                     , OverloadedStrings-                     , RankNTypes-                     , ScopedTypeVariables-                     , TupleSections-                     , TypeFamilies   other-modules:       Lib.Prelude                      , Network.Minio-                     , Network.Minio.API-                     , Network.Minio.API.Test-                     , Network.Minio.APICommon-                     , Network.Minio.AdminAPI-                     , Network.Minio.CopyObject-                     , Network.Minio.Data-                     , Network.Minio.Data.ByteString-                     , Network.Minio.Data.Crypto-                     , Network.Minio.Data.Time-                     , Network.Minio.Errors-                     , Network.Minio.JsonParser-                     , Network.Minio.JsonParser.Test-                     , Network.Minio.ListOps-                     , Network.Minio.PresignedOperations-                     , Network.Minio.PutObject                      , Network.Minio.S3API-                     , Network.Minio.SelectAPI-                     , Network.Minio.Sign.V4+                     , Network.Minio.AdminAPI                      , Network.Minio.TestHelpers-                     , Network.Minio.Utils+                     , Network.Minio.API.Test+                     , Network.Minio.JsonParser.Test                      , Network.Minio.Utils.Test-                     , Network.Minio.XmlGenerator                      , Network.Minio.XmlGenerator.Test-                     , Network.Minio.XmlParser                      , Network.Minio.XmlParser.Test++Flag examples+  Description: Build the examples+  Default: False+  Manual: True++common examples-settings+  ghc-options:         -Wall -threaded -rtsopts -with-rtsopts=-N+  default-language:    Haskell2010+  default-extensions:  OverloadedStrings+  build-depends:       base >= 4.7 && < 5+                     , bytestring+                     , case-insensitive+                     , conduit+                     , conduit-extra+                     , filepath+                     , minio-hs+                     , optparse-applicative+                     , text+                     , time+                     , unliftio+                     , unordered-containers+  hs-source-dirs:      examples+  if !flag(examples)+    buildable: False++executable BucketExists+  import:              examples-settings+  scope:               private+  main-is:             BucketExists.hs++executable CopyObject+  import:              examples-settings+  scope:               private+  main-is:             CopyObject.hs++executable FileUploader+  import:              examples-settings+  scope:               private+  main-is:             FileUploader.hs++executable GetConfig+  import:              examples-settings+  scope:               private+  main-is:             GetConfig.hs++executable GetObject+  import:              examples-settings+  scope:               private+  main-is:             GetObject.hs++executable HeadObject+  import:              examples-settings+  scope:               private+  main-is:             HeadObject.hs++executable Heal+  import:              examples-settings+  scope:               private+  main-is:             Heal.hs++executable ListBuckets+  import:              examples-settings+  scope:               private+  main-is:             ListBuckets.hs++executable ListIncompleteUploads+  import:              examples-settings+  scope:               private+  main-is:             ListIncompleteUploads.hs++executable ListObjects+  import:              examples-settings+  scope:               private+  main-is:             ListObjects.hs++executable MakeBucket+  import:              examples-settings+  scope:               private+  main-is:             MakeBucket.hs++executable PresignedGetObject+  import:              examples-settings+  scope:               private+  main-is:             PresignedGetObject.hs++executable PresignedPostPolicy+  import:              examples-settings+  scope:               private+  main-is:             PresignedPostPolicy.hs++executable PresignedPutObject+  import:              examples-settings+  scope:               private+  main-is:             PresignedPutObject.hs++executable PutObject+  import:              examples-settings+  scope:               private+  main-is:             PutObject.hs++executable RemoveBucket+  import:              examples-settings+  scope:               private+  main-is:             RemoveBucket.hs++executable RemoveIncompleteUpload+  import:              examples-settings+  scope:               private+  main-is:             RemoveIncompleteUpload.hs++executable RemoveObject+  import:              examples-settings+  scope:               private+  main-is:             RemoveObject.hs++executable SelectObject+  import:              examples-settings+  scope:               private+  main-is:             SelectObject.hs++executable ServerInfo+  import:              examples-settings+  scope:               private+  main-is:             ServerInfo.hs++executable ServiceSendRestart+  import:              examples-settings+  scope:               private+  main-is:             ServiceSendRestart.hs++executable ServiceSendStop+  import:              examples-settings+  scope:               private+  main-is:             ServiceSendStop.hs++executable ServiceStatus+  import:              examples-settings+  scope:               private+  main-is:             ServiceStatus.hs++executable SetConfig+  import:              examples-settings+  scope:               private+  main-is:             SetConfig.hs  source-repository head   type:     git
src/Network/Minio/Data.hs view
@@ -77,7 +77,7 @@       ("us-east-1", "s3.amazonaws.com")     , ("us-east-2", "s3-us-east-2.amazonaws.com")     , ("us-west-1", "s3-us-west-1.amazonaws.com")-    , ("us-east-2", "s3-us-west-2.amazonaws.com")+    , ("us-west-2", "s3-us-west-2.amazonaws.com")     , ("ca-central-1", "s3-ca-central-1.amazonaws.com")     , ("ap-south-1", "s3-ap-south-1.amazonaws.com")     , ("ap-northeast-1", "s3-ap-northeast-1.amazonaws.com")