GetObject s3api and fGetObject api

- Also updates to lts 6.27 (to be able to use sinkFileCautious)
This commit is contained in:
Aditya Manthramurthy 2017-01-06 02:57:26 +05:30
parent fe1dfe24d6
commit 73a88143d5
6 changed files with 44 additions and 13 deletions

View File

@ -31,5 +31,7 @@ main = do
res <- getLocation "test1"
print res
fGetObject "test1" "passwd" "/tmp/passwd"
print "After runResourceT"
print t

View File

@ -31,9 +31,12 @@ library
, bytestring
, case-insensitive
, conduit
, conduit-combinators
, conduit-extra
, containers
, cryptonite
, errors
, filepath
, http-client
, http-conduit
, http-types

View File

@ -1,5 +1,6 @@
module Network.Minio
( module Exports
, fGetObject
) where
{-
@ -19,3 +20,17 @@ import Network.Minio.Data as
, connect
, ConnectInfo(..)
)
import System.FilePath
import qualified Data.Conduit as C
import qualified Data.Conduit.Binary as CB
import Lib.Prelude
import Network.Minio.Data
import Network.Minio.S3API
fGetObject :: Bucket -> Object -> FilePath -> Minio ()
fGetObject bucket object fp = do
(_, src) <- getObject bucket object [] []
src C.$$+- CB.sinkFileCautious fp

View File

@ -5,6 +5,7 @@ module Network.Minio.API
, RequestInfo(..)
, runMinio
, executeRequest
, mkStreamRequest
, requestInfo
) where
@ -61,8 +62,9 @@ executeRequest ri = do
NC.httpLbs req mgr
mkSRequest :: RequestInfo -> Minio (Response (C.ResumableSource Minio ByteString))
mkSRequest ri = do
mkStreamRequest :: RequestInfo
-> Minio (Response (C.ResumableSource Minio ByteString))
mkStreamRequest ri = do
let PayloadSingle pload = payload ri
phash = hashSHA256 pload
newRI = ri {

View File

@ -1,10 +1,12 @@
module Network.Minio.S3API
( getService
, getLocation
, getObject
) where
import qualified Network.HTTP.Types as HT
import qualified Network.HTTP.Conduit as NC
import qualified Data.Conduit as C
import Lib.Prelude
@ -27,4 +29,11 @@ getLocation bucket = do
(PayloadSingle "")
parseLocation $ NC.responseBody resp
-- getObject ::
getObject :: Bucket -> Object -> HT.Query -> [HT.Header]
-> Minio ([HT.Header], C.ResumableSource Minio ByteString)
getObject bucket object queryParams headers = do
resp <- mkStreamRequest reqInfo
return $ (NC.responseHeaders resp, NC.responseBody resp)
where
reqInfo = requestInfo HT.methodGet (Just bucket) (Just object)
queryParams headers (PayloadSingle "")

View File

@ -15,7 +15,7 @@
# resolver:
# name: custom-snapshot
# location: "./custom-snapshot.yaml"
resolver: lts-6.15
resolver: lts-6.27
# User packages to be built.
# Various formats can be used as shown in the example below.