mirror of
https://github.com/typeable/minio-hs.git
synced 2024-12-01 22:25:54 +03:00
GetObject s3api and fGetObject api
- Also updates to lts 6.27 (to be able to use sinkFileCautious)
This commit is contained in:
parent
fe1dfe24d6
commit
73a88143d5
@ -31,5 +31,7 @@ main = do
|
||||
res <- getLocation "test1"
|
||||
print res
|
||||
|
||||
fGetObject "test1" "passwd" "/tmp/passwd"
|
||||
|
||||
print "After runResourceT"
|
||||
print t
|
||||
|
@ -31,9 +31,12 @@ library
|
||||
, bytestring
|
||||
, case-insensitive
|
||||
, conduit
|
||||
, conduit-combinators
|
||||
, conduit-extra
|
||||
, containers
|
||||
, cryptonite
|
||||
, errors
|
||||
, filepath
|
||||
, http-client
|
||||
, http-conduit
|
||||
, http-types
|
||||
|
@ -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
|
||||
|
@ -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 {
|
||||
|
@ -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 "")
|
||||
|
20
stack.yaml
20
stack.yaml
@ -1,5 +1,5 @@
|
||||
# This file was automatically generated by 'stack init'
|
||||
#
|
||||
#
|
||||
# Some commonly used options have been documented as comments in this file.
|
||||
# For advanced use and comprehensive documentation of the format, please see:
|
||||
# http://docs.haskellstack.org/en/stable/yaml_configuration/
|
||||
@ -7,7 +7,7 @@
|
||||
# Resolver to choose a 'specific' stackage snapshot or a compiler version.
|
||||
# A snapshot resolver dictates the compiler version and the set of packages
|
||||
# to be used for project dependencies. For example:
|
||||
#
|
||||
#
|
||||
# resolver: lts-3.5
|
||||
# resolver: nightly-2015-09-21
|
||||
# resolver: ghc-7.10.2
|
||||
@ -15,11 +15,11 @@
|
||||
# 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.
|
||||
#
|
||||
#
|
||||
# packages:
|
||||
# - some-directory
|
||||
# - https://example.com/foo/bar/baz-0.0.2.tar.gz
|
||||
@ -31,7 +31,7 @@ resolver: lts-6.15
|
||||
# subdirs:
|
||||
# - auto-update
|
||||
# - wai
|
||||
#
|
||||
#
|
||||
# A package marked 'extra-dep: true' will only be built if demanded by a
|
||||
# non-dependency (i.e. a user package), and its test suites and benchmarks
|
||||
# will not be run. This is useful for tweaking upstream packages.
|
||||
@ -49,18 +49,18 @@ extra-package-dbs: []
|
||||
|
||||
# Control whether we use the GHC we find on the path
|
||||
# system-ghc: true
|
||||
#
|
||||
#
|
||||
# Require a specific version of stack, using version ranges
|
||||
# require-stack-version: -any # Default
|
||||
# require-stack-version: ">=1.1"
|
||||
#
|
||||
#
|
||||
# Override the architecture used by stack, especially useful on Windows
|
||||
# arch: i386
|
||||
# arch: x86_64
|
||||
#
|
||||
#
|
||||
# Extra directories used by stack for building
|
||||
# extra-include-dirs: [/path/to/dir]
|
||||
# extra-lib-dirs: [/path/to/dir]
|
||||
#
|
||||
#
|
||||
# Allow a newer minor version of GHC than the snapshot specifies
|
||||
# compiler-check: newer-minor
|
||||
# compiler-check: newer-minor
|
||||
|
Loading…
Reference in New Issue
Block a user