New release (#140)
* Disable live-server tests by default - They will always be run by our CI - Also update and fix example in README. * Update examples and add them to build - Also drop support for GHC 8.2.2 * Bump up version for new release
This commit is contained in:
parent
c31030beac
commit
d2a78df4eb
@ -16,7 +16,6 @@ matrix:
|
|||||||
include:
|
include:
|
||||||
|
|
||||||
# Cabal
|
# Cabal
|
||||||
- ghc: 8.2.2
|
|
||||||
- ghc: 8.4.4
|
- ghc: 8.4.4
|
||||||
- ghc: 8.6.5
|
- ghc: 8.6.5
|
||||||
- ghc: 8.8.1
|
- ghc: 8.8.1
|
||||||
@ -40,22 +39,22 @@ install:
|
|||||||
ghc --version
|
ghc --version
|
||||||
cabal --version
|
cabal --version
|
||||||
cabal new-update
|
cabal new-update
|
||||||
cabal new-build --enable-tests --enable-benchmarks
|
cabal new-build --enable-tests --enable-benchmarks -fexamples
|
||||||
else
|
else
|
||||||
# install stack
|
# install stack
|
||||||
curl -sSL https://get.haskellstack.org/ | sh
|
curl -sSL https://get.haskellstack.org/ | sh
|
||||||
|
|
||||||
# build project with stack
|
# build project with stack
|
||||||
stack --version
|
stack --version
|
||||||
stack build --system-ghc --test --bench --no-run-tests --no-run-benchmarks
|
stack build --system-ghc --test --bench --no-run-tests --no-run-benchmarks --flag minio-hs:examples
|
||||||
fi
|
fi
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- |
|
- |
|
||||||
if [ -z "$STACK_YAML" ]; then
|
if [ -z "$STACK_YAML" ]; then
|
||||||
MINIO_LOCAL=1 MINIO_SECURE=1 cabal new-test --enable-tests
|
MINIO_LOCAL=1 MINIO_SECURE=1 cabal new-test --enable-tests -flive-test
|
||||||
else
|
else
|
||||||
MINIO_LOCAL=1 MINIO_SECURE=1 stack test --system-ghc
|
MINIO_LOCAL=1 MINIO_SECURE=1 stack test --system-ghc --flag minio-hs:live-test
|
||||||
fi
|
fi
|
||||||
|
|
||||||
notifications:
|
notifications:
|
||||||
|
|||||||
@ -1,6 +1,13 @@
|
|||||||
Changelog
|
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
|
## Version 1.5.1
|
||||||
|
|
||||||
* Add support for GHC 8.8
|
* Add support for GHC 8.8
|
||||||
|
|||||||
98
README.md
98
README.md
@ -8,43 +8,42 @@ The MinIO Haskell Client SDK provides simple APIs to access [MinIO](https://min.
|
|||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
```sh
|
### Add to your project
|
||||||
git clone https://github.com/minio/minio-hs.git
|
|
||||||
|
|
||||||
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
|
```sh
|
||||||
|
|
||||||
stack test
|
stack install minio-hs
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
A section of the tests use the remote MinIO Play server at
|
Then start an interpreter session and browse the available APIs with:
|
||||||
`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:
|
|
||||||
|
|
||||||
```sh
|
```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
|
### FileUploader.hs
|
||||||
``` haskell
|
``` haskell
|
||||||
#!/usr/bin/env stack
|
#!/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.
|
-- MinIO Haskell SDK, (C) 2017-2019 MinIO, Inc.
|
||||||
@ -106,16 +105,19 @@ main = do
|
|||||||
res <- runMinio minioPlayCI $ do
|
res <- runMinio minioPlayCI $ do
|
||||||
-- Make a bucket; catch bucket already exists exception if thrown.
|
-- Make a bucket; catch bucket already exists exception if thrown.
|
||||||
bErr <- try $ makeBucket bucket Nothing
|
bErr <- try $ makeBucket bucket Nothing
|
||||||
case bErr of
|
|
||||||
Left (MErrService BucketAlreadyOwnedByYou) -> return ()
|
|
||||||
Left e -> throwIO e
|
|
||||||
Right _ -> return ()
|
|
||||||
|
|
||||||
-- Upload filepath to bucket; object is derived from filepath.
|
-- If the bucket already exists, we would get a specific
|
||||||
fPutObject bucket object filepath def
|
-- `ServiceErr` exception thrown.
|
||||||
|
case bErr of
|
||||||
|
Left BucketAlreadyOwnedByYou -> return ()
|
||||||
|
Left e -> throwIO e
|
||||||
|
Right _ -> return ()
|
||||||
|
|
||||||
|
-- Upload filepath to bucket; object name is derived from filepath.
|
||||||
|
fPutObject bucket object filepath defaultPutObjectOptions
|
||||||
|
|
||||||
case res of
|
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."
|
Right () -> putStrLn "file upload succeeded."
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -129,3 +131,47 @@ main = do
|
|||||||
## Contribute
|
## Contribute
|
||||||
|
|
||||||
[Contributors Guide](https://github.com/minio/minio-hs/blob/master/CONTRIBUTING.md)
|
[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
|
||||||
|
|
||||||
|
```
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env stack
|
#!/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.
|
-- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env stack
|
#!/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.
|
-- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.
|
||||||
@ -20,8 +20,7 @@
|
|||||||
{-# LANGUAGE OverloadedStrings #-}
|
{-# LANGUAGE OverloadedStrings #-}
|
||||||
import Network.Minio
|
import Network.Minio
|
||||||
|
|
||||||
import Control.Monad.Catch (catchIf)
|
import UnliftIO.Exception (catch, throwIO)
|
||||||
import Prelude
|
|
||||||
|
|
||||||
-- | The following example uses minio's play server at
|
-- | The following example uses minio's play server at
|
||||||
-- https://play.min.io. The endpoint and associated
|
-- https://play.min.io. The endpoint and associated
|
||||||
@ -30,9 +29,6 @@ import Prelude
|
|||||||
-- > minioPlayCI :: ConnectInfo
|
-- > minioPlayCI :: ConnectInfo
|
||||||
--
|
--
|
||||||
|
|
||||||
ignoreMinioErr :: ServiceErr -> Minio ()
|
|
||||||
ignoreMinioErr = return . const ()
|
|
||||||
|
|
||||||
main :: IO ()
|
main :: IO ()
|
||||||
main = do
|
main = do
|
||||||
let
|
let
|
||||||
@ -43,13 +39,18 @@ main = do
|
|||||||
|
|
||||||
res1 <- runMinio minioPlayCI $ do
|
res1 <- runMinio minioPlayCI $ do
|
||||||
-- 1. Make a bucket; Catch BucketAlreadyOwnedByYou exception.
|
-- 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.
|
-- 2. Upload a file to bucket/object.
|
||||||
fPutObject bucket object localFile
|
fPutObject bucket object localFile defaultPutObjectOptions
|
||||||
|
|
||||||
-- 3. Copy bucket/object to bucket/objectCopy.
|
-- 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
|
case res1 of
|
||||||
Left e -> putStrLn $ "copyObject failed." ++ show e
|
Left e -> putStrLn $ "copyObject failed." ++ show e
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env stack
|
#!/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.
|
-- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.
|
||||||
@ -43,6 +43,7 @@ fileNameArgs = strArgument
|
|||||||
(metavar "FILENAME"
|
(metavar "FILENAME"
|
||||||
<> help "Name of file to upload to AWS S3 or a MinIO server")
|
<> help "Name of file to upload to AWS S3 or a MinIO server")
|
||||||
|
|
||||||
|
cmdParser :: ParserInfo FilePath
|
||||||
cmdParser = info
|
cmdParser = info
|
||||||
(helper <*> fileNameArgs)
|
(helper <*> fileNameArgs)
|
||||||
(fullDesc
|
(fullDesc
|
||||||
@ -62,12 +63,12 @@ main = do
|
|||||||
-- Make a bucket; catch bucket already exists exception if thrown.
|
-- Make a bucket; catch bucket already exists exception if thrown.
|
||||||
bErr <- try $ makeBucket bucket Nothing
|
bErr <- try $ makeBucket bucket Nothing
|
||||||
case bErr of
|
case bErr of
|
||||||
Left (MErrService BucketAlreadyOwnedByYou) -> return ()
|
Left BucketAlreadyOwnedByYou -> return ()
|
||||||
Left e -> throwIO e
|
Left e -> throwIO e
|
||||||
Right _ -> return ()
|
Right _ -> return ()
|
||||||
|
|
||||||
-- Upload filepath to bucket; object is derived from filepath.
|
-- Upload filepath to bucket; object is derived from filepath.
|
||||||
fPutObject bucket object filepath def
|
fPutObject bucket object filepath defaultPutObjectOptions
|
||||||
|
|
||||||
case res of
|
case res of
|
||||||
Left e -> putStrLn $ "file upload failed due to " ++ (show e)
|
Left e -> putStrLn $ "file upload failed due to " ++ (show e)
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env stack
|
#!/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.
|
-- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.
|
||||||
@ -25,6 +25,6 @@ import Prelude
|
|||||||
|
|
||||||
main :: IO ()
|
main :: IO ()
|
||||||
main = do
|
main = do
|
||||||
res <- runMinio def $
|
res <- runMinio minioPlayCI $
|
||||||
getConfig
|
getConfig
|
||||||
print res
|
print res
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env stack
|
#!/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.
|
-- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.
|
||||||
@ -38,8 +38,8 @@ main = do
|
|||||||
bucket = "my-bucket"
|
bucket = "my-bucket"
|
||||||
object = "my-object"
|
object = "my-object"
|
||||||
res <- runMinio minioPlayCI $ do
|
res <- runMinio minioPlayCI $ do
|
||||||
src <- getObject bucket object def
|
src <- getObject bucket object defaultGetObjectOptions
|
||||||
C.connect src $ CB.sinkFileCautious "/tmp/my-object"
|
C.connect (gorObjectStream src) $ CB.sinkFileCautious "/tmp/my-object"
|
||||||
|
|
||||||
case res of
|
case res of
|
||||||
Left e -> putStrLn $ "getObject failed." ++ (show e)
|
Left e -> putStrLn $ "getObject failed." ++ (show e)
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env stack
|
#!/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.
|
-- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.
|
||||||
@ -36,7 +36,7 @@ main = do
|
|||||||
bucket = "test"
|
bucket = "test"
|
||||||
object = "passwd"
|
object = "passwd"
|
||||||
res <- runMinio minioPlayCI $
|
res <- runMinio minioPlayCI $
|
||||||
headObject bucket object
|
headObject bucket object []
|
||||||
|
|
||||||
case res of
|
case res of
|
||||||
Left e -> putStrLn $ "headObject failed." ++ show e
|
Left e -> putStrLn $ "headObject failed." ++ show e
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env stack
|
#!/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.
|
-- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.
|
||||||
@ -25,7 +25,7 @@ import Prelude
|
|||||||
|
|
||||||
main :: IO ()
|
main :: IO ()
|
||||||
main = do
|
main = do
|
||||||
res <- runMinio def $
|
res <- runMinio minioPlayCI $
|
||||||
do
|
do
|
||||||
hsr <- startHeal Nothing Nothing HealOpts { hoRecursive = True
|
hsr <- startHeal Nothing Nothing HealOpts { hoRecursive = True
|
||||||
, hoDryRun = False
|
, hoDryRun = False
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env stack
|
#!/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.
|
-- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env stack
|
#!/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.
|
-- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env stack
|
#!/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.
|
-- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env stack
|
#!/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.
|
-- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env stack
|
#!/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.
|
-- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.
|
||||||
@ -47,11 +47,11 @@ main = do
|
|||||||
|
|
||||||
res <- runMinio minioPlayCI $ do
|
res <- runMinio minioPlayCI $ do
|
||||||
liftIO $ B.putStrLn "Upload a file that we will fetch with a presigned URL..."
|
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"
|
liftIO $ putStrLn $ "Done. Object created at: my-bucket/my-object"
|
||||||
|
|
||||||
-- Extract Etag of uploaded object
|
-- Extract Etag of uploaded object
|
||||||
oi <- statObject bucket object
|
oi <- statObject bucket object defaultGetObjectOptions
|
||||||
let etag = oiETag oi
|
let etag = oiETag oi
|
||||||
|
|
||||||
-- Set header to add an if-match constraint - this makes sure
|
-- Set header to add an if-match constraint - this makes sure
|
||||||
@ -68,7 +68,7 @@ main = do
|
|||||||
|
|
||||||
case res of
|
case res of
|
||||||
Left e -> putStrLn $ "presignedPutObject URL failed." ++ show e
|
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
|
-- We generate a curl command to demonstrate usage of the signed
|
||||||
-- URL.
|
-- URL.
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env stack
|
#!/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.
|
-- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.
|
||||||
@ -38,7 +38,7 @@ main = do
|
|||||||
now <- Time.getCurrentTime
|
now <- Time.getCurrentTime
|
||||||
let
|
let
|
||||||
bucket = "my-bucket"
|
bucket = "my-bucket"
|
||||||
object = "my-object"
|
object = "photos/my-object"
|
||||||
|
|
||||||
-- set an expiration time of 10 days
|
-- set an expiration time of 10 days
|
||||||
expireTime = Time.addUTCTime (3600 * 24 * 10) now
|
expireTime = Time.addUTCTime (3600 * 24 * 10) now
|
||||||
@ -47,9 +47,9 @@ main = do
|
|||||||
-- conditions are validated, newPostPolicy returns an Either value
|
-- conditions are validated, newPostPolicy returns an Either value
|
||||||
policyE = newPostPolicy expireTime
|
policyE = newPostPolicy expireTime
|
||||||
[ -- set the object name condition
|
[ -- set the object name condition
|
||||||
ppCondKey "photos/my-object"
|
ppCondKey object
|
||||||
-- set the bucket name condition
|
-- set the bucket name condition
|
||||||
, ppCondBucket "my-bucket"
|
, ppCondBucket bucket
|
||||||
-- set the size range of object as 1B to 10MiB
|
-- set the size range of object as 1B to 10MiB
|
||||||
, ppCondContentLengthRange 1 (10*1024*1024)
|
, ppCondContentLengthRange 1 (10*1024*1024)
|
||||||
-- set content type as jpg image
|
-- set content type as jpg image
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env stack
|
#!/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.
|
-- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env stack
|
#!/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.
|
-- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.
|
||||||
@ -41,14 +41,14 @@ main = do
|
|||||||
|
|
||||||
-- Eg 1. Upload a stream of repeating "a" using putObject with default options.
|
-- Eg 1. Upload a stream of repeating "a" using putObject with default options.
|
||||||
res1 <- runMinio minioPlayCI $
|
res1 <- runMinio minioPlayCI $
|
||||||
putObject bucket object (CC.repeat "a") (Just kb15) def
|
putObject bucket object (CC.repeat "a") (Just kb15) defaultPutObjectOptions
|
||||||
case res1 of
|
case res1 of
|
||||||
Left e -> putStrLn $ "putObject failed." ++ show e
|
Left e -> putStrLn $ "putObject failed." ++ show e
|
||||||
Right () -> putStrLn "putObject succeeded."
|
Right () -> putStrLn "putObject succeeded."
|
||||||
|
|
||||||
-- Eg 2. Upload a file using fPutObject with default options.
|
-- Eg 2. Upload a file using fPutObject with default options.
|
||||||
res2 <- runMinio minioPlayCI $
|
res2 <- runMinio minioPlayCI $
|
||||||
fPutObject bucket object localFile def
|
fPutObject bucket object localFile defaultPutObjectOptions
|
||||||
case res2 of
|
case res2 of
|
||||||
Left e -> putStrLn $ "fPutObject failed." ++ show e
|
Left e -> putStrLn $ "fPutObject failed." ++ show e
|
||||||
Right () -> putStrLn "fPutObject succeeded."
|
Right () -> putStrLn "fPutObject succeeded."
|
||||||
|
|||||||
17
examples/README.md
Normal file
17
examples/README.md
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# Examples
|
||||||
|
|
||||||
|
The examples in this directory illustrate usage of various APIs provided by this library. Each file is self-contained and can be run like a script directly.
|
||||||
|
|
||||||
|
To build the examples, the build flag `examples` needs to be turned on:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
stack build --flag minio-hs:examples
|
||||||
|
```
|
||||||
|
|
||||||
|
Now to run and example script [BucketExists.hs](https://github.com/minio/minio-hs/blob/master/examples/BucketExists.hs):
|
||||||
|
|
||||||
|
```sh
|
||||||
|
stack exec BucketExists
|
||||||
|
```
|
||||||
|
|
||||||
|
The CI system is configured to build these examples with every change, so they should be current.
|
||||||
@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env stack
|
#!/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.
|
-- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env stack
|
#!/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.
|
-- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env stack
|
#!/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.
|
-- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env stack
|
#!/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.
|
-- MinIO Haskell SDK, (C) 2019 MinIO, Inc.
|
||||||
@ -22,7 +22,6 @@ import Network.Minio
|
|||||||
|
|
||||||
import qualified Conduit as C
|
import qualified Conduit as C
|
||||||
import Control.Monad (when)
|
import Control.Monad (when)
|
||||||
import qualified Data.ByteString.Lazy as LB
|
|
||||||
|
|
||||||
import Prelude
|
import Prelude
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env stack
|
#!/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.
|
-- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.
|
||||||
@ -25,6 +25,6 @@ import Prelude
|
|||||||
|
|
||||||
main :: IO ()
|
main :: IO ()
|
||||||
main = do
|
main = do
|
||||||
res <- runMinio def $
|
res <- runMinio minioPlayCI $
|
||||||
getServerInfo
|
getServerInfo
|
||||||
print res
|
print res
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env stack
|
#!/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.
|
-- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.
|
||||||
@ -25,6 +25,6 @@ import Prelude
|
|||||||
|
|
||||||
main :: IO ()
|
main :: IO ()
|
||||||
main = do
|
main = do
|
||||||
res <- runMinio def $
|
res <- runMinio minioPlayCI $
|
||||||
serviceSendAction ServiceActionRestart
|
serviceSendAction ServiceActionRestart
|
||||||
print res
|
print res
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env stack
|
#!/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.
|
-- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.
|
||||||
@ -25,6 +25,6 @@ import Prelude
|
|||||||
|
|
||||||
main :: IO ()
|
main :: IO ()
|
||||||
main = do
|
main = do
|
||||||
res <- runMinio def $
|
res <- runMinio minioPlayCI $
|
||||||
serviceSendAction ServiceActionStop
|
serviceSendAction ServiceActionStop
|
||||||
print res
|
print res
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env stack
|
#!/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.
|
-- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.
|
||||||
@ -25,6 +25,6 @@ import Prelude
|
|||||||
|
|
||||||
main :: IO ()
|
main :: IO ()
|
||||||
main = do
|
main = do
|
||||||
res <- runMinio def $
|
res <- runMinio minioPlayCI $
|
||||||
serviceStatus
|
serviceStatus
|
||||||
print res
|
print res
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env stack
|
#!/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.
|
-- MinIO Haskell SDK, (C) 2017, 2018 MinIO, Inc.
|
||||||
@ -25,7 +25,7 @@ import Prelude
|
|||||||
|
|
||||||
main :: IO ()
|
main :: IO ()
|
||||||
main = do
|
main = do
|
||||||
res <- runMinio def $
|
res <- runMinio minioPlayCI $
|
||||||
do
|
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\"}}}}"
|
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
|
setConfig config
|
||||||
|
|||||||
336
minio-hs.cabal
336
minio-hs.cabal
@ -1,5 +1,6 @@
|
|||||||
|
cabal-version: 2.2
|
||||||
name: minio-hs
|
name: minio-hs
|
||||||
version: 1.5.1
|
version: 1.5.2
|
||||||
synopsis: A MinIO Haskell Library for Amazon S3 compatible cloud
|
synopsis: A MinIO Haskell Library for Amazon S3 compatible cloud
|
||||||
storage.
|
storage.
|
||||||
description: The MinIO Haskell client library provides simple APIs to
|
description: The MinIO Haskell client library provides simple APIs to
|
||||||
@ -21,14 +22,21 @@ extra-source-files:
|
|||||||
README.md
|
README.md
|
||||||
stack.yaml
|
stack.yaml
|
||||||
|
|
||||||
cabal-version: >=1.10
|
|
||||||
|
|
||||||
library
|
common base-settings
|
||||||
hs-source-dirs: src
|
|
||||||
ghc-options: -Wall
|
ghc-options: -Wall
|
||||||
exposed-modules: Network.Minio
|
default-language: Haskell2010
|
||||||
, Network.Minio.AdminAPI
|
default-extensions: BangPatterns
|
||||||
, Network.Minio.S3API
|
, FlexibleContexts
|
||||||
|
, FlexibleInstances
|
||||||
|
, MultiParamTypeClasses
|
||||||
|
, MultiWayIf
|
||||||
|
, NoImplicitPrelude
|
||||||
|
, OverloadedStrings
|
||||||
|
, RankNTypes
|
||||||
|
, ScopedTypeVariables
|
||||||
|
, TypeFamilies
|
||||||
|
, TupleSections
|
||||||
other-modules: Lib.Prelude
|
other-modules: Lib.Prelude
|
||||||
, Network.Minio.API
|
, Network.Minio.API
|
||||||
, Network.Minio.APICommon
|
, Network.Minio.APICommon
|
||||||
@ -79,193 +87,211 @@ library
|
|||||||
, unliftio-core >= 0.1
|
, unliftio-core >= 0.1
|
||||||
, unordered-containers >= 0.2
|
, unordered-containers >= 0.2
|
||||||
, xml-conduit >= 1.8
|
, xml-conduit >= 1.8
|
||||||
default-language: Haskell2010
|
|
||||||
default-extensions: BangPatterns
|
library
|
||||||
, FlexibleContexts
|
import: base-settings
|
||||||
, FlexibleInstances
|
hs-source-dirs: src
|
||||||
, MultiParamTypeClasses
|
exposed-modules: Network.Minio
|
||||||
, MultiWayIf
|
, Network.Minio.AdminAPI
|
||||||
, NoImplicitPrelude
|
, Network.Minio.S3API
|
||||||
, OverloadedStrings
|
|
||||||
, RankNTypes
|
|
||||||
, ScopedTypeVariables
|
|
||||||
, TypeFamilies
|
|
||||||
, TupleSections
|
|
||||||
|
|
||||||
Flag live-test
|
Flag live-test
|
||||||
Default: True
|
Description: Build the test suite that runs against a live MinIO server
|
||||||
|
Default: False
|
||||||
Manual: True
|
Manual: True
|
||||||
|
|
||||||
test-suite minio-hs-live-server-test
|
test-suite minio-hs-live-server-test
|
||||||
|
import: base-settings
|
||||||
type: exitcode-stdio-1.0
|
type: exitcode-stdio-1.0
|
||||||
hs-source-dirs: test, src
|
hs-source-dirs: test, src
|
||||||
main-is: LiveServer.hs
|
main-is: LiveServer.hs
|
||||||
ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N
|
ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N
|
||||||
default-language: Haskell2010
|
other-modules: Network.Minio
|
||||||
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.S3API
|
||||||
, Network.Minio.SelectAPI
|
, Network.Minio.AdminAPI
|
||||||
, Network.Minio.Sign.V4
|
, Network.Minio.API.Test
|
||||||
|
, Network.Minio.JsonParser.Test
|
||||||
, Network.Minio.TestHelpers
|
, Network.Minio.TestHelpers
|
||||||
, Network.Minio.Utils
|
|
||||||
, Network.Minio.Utils.Test
|
, Network.Minio.Utils.Test
|
||||||
, Network.Minio.XmlGenerator
|
|
||||||
, Network.Minio.XmlGenerator.Test
|
, Network.Minio.XmlGenerator.Test
|
||||||
, Network.Minio.XmlParser
|
|
||||||
, Network.Minio.XmlParser.Test
|
, Network.Minio.XmlParser.Test
|
||||||
build-depends: base >= 4.7 && < 5
|
build-depends: minio-hs
|
||||||
, 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
|
|
||||||
, tasty
|
, tasty
|
||||||
, tasty-hunit
|
, tasty-hunit
|
||||||
, tasty-quickcheck
|
, tasty-quickcheck
|
||||||
, tasty-smallcheck
|
, tasty-smallcheck
|
||||||
, temporary
|
, QuickCheck
|
||||||
, text
|
|
||||||
, time
|
|
||||||
, transformers
|
|
||||||
, unliftio
|
|
||||||
, unliftio-core
|
|
||||||
, unordered-containers
|
|
||||||
, xml-conduit
|
|
||||||
if !flag(live-test)
|
if !flag(live-test)
|
||||||
buildable: False
|
buildable: False
|
||||||
|
|
||||||
test-suite minio-hs-test
|
test-suite minio-hs-test
|
||||||
|
import: base-settings
|
||||||
type: exitcode-stdio-1.0
|
type: exitcode-stdio-1.0
|
||||||
hs-source-dirs: test, src
|
hs-source-dirs: test, src
|
||||||
main-is: Spec.hs
|
main-is: Spec.hs
|
||||||
build-depends: base >= 4.7 && < 5
|
build-depends: minio-hs
|
||||||
, minio-hs
|
|
||||||
, protolude >= 0.1.6
|
|
||||||
, QuickCheck
|
, 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
|
||||||
, tasty-hunit
|
, tasty-hunit
|
||||||
, tasty-quickcheck
|
, tasty-quickcheck
|
||||||
, tasty-smallcheck
|
, tasty-smallcheck
|
||||||
, temporary
|
|
||||||
, text
|
|
||||||
, time
|
|
||||||
, transformers
|
|
||||||
, unliftio
|
|
||||||
, unliftio-core
|
|
||||||
, unordered-containers
|
|
||||||
, xml-conduit
|
|
||||||
ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N
|
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
|
other-modules: Lib.Prelude
|
||||||
, Network.Minio
|
, 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.S3API
|
||||||
, Network.Minio.SelectAPI
|
, Network.Minio.AdminAPI
|
||||||
, Network.Minio.Sign.V4
|
|
||||||
, Network.Minio.TestHelpers
|
, Network.Minio.TestHelpers
|
||||||
, Network.Minio.Utils
|
, Network.Minio.API.Test
|
||||||
|
, Network.Minio.JsonParser.Test
|
||||||
, Network.Minio.Utils.Test
|
, Network.Minio.Utils.Test
|
||||||
, Network.Minio.XmlGenerator
|
|
||||||
, Network.Minio.XmlGenerator.Test
|
, Network.Minio.XmlGenerator.Test
|
||||||
, Network.Minio.XmlParser
|
|
||||||
, Network.Minio.XmlParser.Test
|
, 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
|
source-repository head
|
||||||
type: git
|
type: git
|
||||||
location: https://github.com/minio/minio-hs
|
location: https://github.com/minio/minio-hs
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user