minio-hs/src/Network/Minio.hs
2017-02-13 16:03:42 +05:30

65 lines
1.5 KiB
Haskell

module Network.Minio
(
ConnectInfo(..)
, connect
, Minio
, runMinio
-- * Error handling
-----------------------
-- | Data types representing various errors that may occur while working
-- with an object storage service.
, MinioErr(..)
, MErrV(..)
-- * Data Types
----------------
-- | Data types representing various object store concepts.
, Bucket
, Object
, BucketInfo(..)
, UploadId
-- * Bucket and Object Operations
---------------------------------
, getService
, getLocation
, fGetObject
, fPutObject
, ObjectData(..)
, putObject
, listObjects
, listIncompleteUploads
, listIncompleteParts
) where
{-
This module exports the high-level Minio API for object storage.
-}
import qualified Data.Conduit as C
import qualified Data.Conduit.Binary as CB
import Lib.Prelude
import Network.Minio.Data
import Network.Minio.ListOps
import Network.Minio.PutObject
import Network.Minio.S3API
-- | Fetch the object and write it to the given file safely. The
-- object is first written to a temporary file in the same directory
-- and then moved to the given path.
fGetObject :: Bucket -> Object -> FilePath -> Minio ()
fGetObject bucket object fp = do
(_, src) <- getObject bucket object [] []
src C.$$+- CB.sinkFileCautious fp
-- | Upload the given file to the given object.
fPutObject :: Bucket -> Object -> FilePath -> Minio ()
fPutObject bucket object f = void $ putObject bucket object $
ODFile f Nothing