Movatterモバイル変換


[0]ホーム

URL:


Close Sidebar

Haskell SDK

The MinIO Haskell Client SDK provides simple APIs to accessMinIO and any Amazon S3 compatible object storage.

This guide assumes that you have a workingHaskell development environment.

Installation

Add to your project

Simply addminio-hs to your project’s.cabal dependencies section or if you are using hpack, to yourpackage.yaml file as usual.

Try it out in aREPL

For a cabal based environment

Download the library source and change to the extracted directory:

$ cabal get minio-hs$cd minio-hs-1.6.0/# directory name could be different

Then load theghci REPL environment with the library and browse the available APIs:

$ cabal replghci> :browse Network.Minio

For a stack based environment

From your home folder or any non-haskell project directory, just run:

stack install minio-hs

Then start an interpreter session and browse the available APIs with:

$ stack ghci> :browse Network.Minio

Examples

Theexamples 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 athttps://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

#!/usr/bin/envstack-- stack --resolver lts-14.11 runghc --package minio-hs --package optparse-applicative --package filepath---- MinIO Haskell SDK, (C) 2017-2019 MinIO, Inc.---- Licensed under the Apache License, Version 2.0 (the "License");-- you may not use this file except in compliance with the License.-- You may obtain a copy of the License at----     http://www.apache.org/licenses/LICENSE-2.0---- Unless required by applicable law or agreed to in writing, software-- distributed under the License is distributed on an "AS IS" BASIS,-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.-- See the License for the specific language governing permissions and-- limitations under the License.--{-# LANGUAGE OverloadedStrings   #-}{-# LANGUAGE ScopedTypeVariables #-}importNetwork.MinioimportData.Monoid((<>))importData.Text(pack)importOptions.ApplicativeimportSystem.FilePath.PosiximportUnliftIO(throwIO,try)importPrelude-- | The following example uses minio's play server at-- https://play.min.io.  The endpoint and associated-- credentials are provided via the libary constant,---- > minioPlayCI :: ConnectInfo---- optparse-applicative package based command-line parsing.fileNameArgs::ParserFilePathfileNameArgs=strArgument(metavar"FILENAME"<>help"Name of file to upload to AWS S3 or a MinIO server")cmdParser=info(helper<*>fileNameArgs)(fullDesc<>progDesc"FileUploader"<>header"FileUploader - a simple file-uploader program using minio-hs")main::IO()main=doletbucket="my-bucket"-- Parse command line argumentfilepath<-execParsercmdParserletobject=pack$takeBaseNamefilepathres<-runMiniominioPlayCI$do-- Make a bucket; catch bucket already exists exception if thrown.bErr<-try$makeBucketbucketNothing-- If the bucket already exists, we would get a specific-- `ServiceErr` exception thrown.casebErrofLeftBucketAlreadyOwnedByYou->return()Lefte->throwIOeRight_->return()-- Upload filepath to bucket; object name is derived from filepath.fPutObjectbucketobjectfilepathdefaultPutObjectOptionscaseresofLefte->putStrLn$"file upload failed due to "++showeRight()->putStrLn"file upload succeeded."

Run FileUploader

./FileUploader.hs"path/to/my/file"

Contribute

Contributors Guide

Development

Download the source

$ git clone https://github.com/minio/minio-hs.git$cd minio-hs/

Build the package:

Withcabal:

$# Configure cabal for development enabling all optional flags defined by the package.$ cabal configure --enable-tests --test-show-details=direct -fexamples -fdev -flive-test$ cabal build

Withstack:

$ stack build --test --no-run-tests --flag minio-hs:live-test --flag minio-hs:dev --flag minio-hs:examples

Running tests:

A section of the tests use the remote MinIO Play server athttps://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 athttp://localhost:9000 with the credentialsaccess_key=minio andsecret_key=minio123, just set the environmentMINIO_LOCAL to any value (and unset it to switch back to Play).

Withcabal:

$exportMINIO_LOCAL=1# to run live tests against local MinIO server$ cabaltest

Withstack:

$exportMINIO_LOCAL=1# to run live tests against local MinIO serverstacktest --flag minio-hs:live-test --flag minio-hs:dev

This will run all the test suites.

Building documentation:

$ cabal haddock$# OR$ stack haddock
On this page

Page Feedback

Was this page helpful?

Thank you for your feedback!

How can we improve this page?

Optionally provide your email if you would like us to follow up on your feedbackPlease enter a valid email address

Sending feedback...

Failed to send feedback. Please try again.


[8]ページ先頭

©2009-2025 Movatter.jp