minio-hs-0.1.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 -> Minio ListObjectsResult Source #

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

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.

Multipart Upload APIs

type UploadId = Text Source #

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

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 PartInfo Source #

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

completeMultipartUpload :: Bucket -> Object -> UploadId -> [PartInfo] -> 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 -> 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.