minio-hs-0.3.0: A Minio client library, compatible with S3 like services.

Safe HaskellNone
LanguageHaskell2010

Network.Minio.S3API

Contents

Synopsis

Documentation

type Region = Text Source #

Represents a region TODO: This could be a Sum Type with all defined regions for AWS.

getLocation :: Bucket -> Minio Region Source #

Fetch bucket location (region)

Listing buckets

getService :: Minio [BucketInfo] Source #

Fetch all buckets from the service.

Listing objects

listObjects' :: Bucket -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Int -> Minio ListObjectsResult Source #

List objects in a bucket matching prefix up to delimiter, starting from nextToken.

Retrieving buckets

headBucket :: Bucket -> Minio Bool Source #

Query the object store if a given bucket exists.

Retrieving objects

getObject' :: Bucket -> Object -> Query -> [Header] -> Minio ([Header], ResumableSource Minio ByteString) Source #

GET an object from the service and return the response headers and a conduit source for the object content

headObject :: Bucket -> Object -> Minio ObjectInfo Source #

Get metadata of an object.

Creating buckets and objects

putBucket :: Bucket -> Region -> Minio () Source #

Creates a bucket via a PUT bucket call.

type ETag = Text Source #

A type alias to represent an Entity-Tag returned by S3-compatible APIs.

putObjectSingle :: Bucket -> Object -> [Header] -> Handle -> Int64 -> Int64 -> Minio ETag Source #

PUT an object into the service. This function performs a single PUT object call, and so can only transfer objects upto 5GiB.

copyObjectSingle :: Bucket -> Object -> CopyPartSource -> [Header] -> Minio (ETag, UTCTime) Source #

Performs server-side copy of an object that is upto 5GiB in size. If the object is greater than 5GiB, this function throws the error returned by the server.

Multipart Upload APIs

type UploadId = Text Source #

A type alias to represent an upload-id for multipart upload

type PartTuple = (PartNumber, ETag) Source #

A type to represent a part-number and etag.

data Payload Source #

Represents different kinds of payload that are used with S3 API requests.

Instances

type PartNumber = Int16 Source #

A type alias to represent a part-number for multipart upload

newMultipartUpload :: Bucket -> Object -> [Header] -> Minio UploadId Source #

Create a new multipart upload.

putObjectPart :: Bucket -> Object -> UploadId -> PartNumber -> [Header] -> Payload -> Minio PartTuple Source #

PUT a part of an object as part of a multipart upload.

copyObjectPart :: Bucket -> Object -> CopyPartSource -> UploadId -> PartNumber -> [Header] -> Minio (ETag, UTCTime) Source #

Performs server-side copy of an object or part of an object as an upload part of an ongoing multi-part upload.

completeMultipartUpload :: Bucket -> Object -> UploadId -> [PartTuple] -> Minio ETag Source #

Complete a multipart upload.

abortMultipartUpload :: Bucket -> Object -> UploadId -> Minio () Source #

Abort a multipart upload.

listIncompleteUploads' :: Bucket -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Int -> Minio ListUploadsResult Source #

List incomplete multipart uploads.

data ListPartsResult Source #

Represents result from a listing of object parts of an ongoing multipart upload.

listIncompleteParts' :: Bucket -> Object -> UploadId -> Maybe Text -> Maybe Text -> Minio ListPartsResult Source #

List parts of an ongoing multipart upload.

Deletion APIs

deleteBucket :: Bucket -> Minio () Source #

DELETE a bucket from the service.

deleteObject :: Bucket -> Object -> Minio () Source #

DELETE an object from the service.