packages feed

amazonka-s3-streaming 0.1.0.3 → 0.1.0.4

raw patch · 4 files changed

+71/−58 lines, 4 filesdep ~amazonka-s3-streamingPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: amazonka-s3-streaming

API changes (from Hackage documentation)

Files

Main.hs view
@@ -3,17 +3,22 @@ module Main where  -import           Data.Conduit                         (($$))-import           Data.Conduit.Binary                  (sourceHandle)-import           Data.Text                            (pack)-import           Network.AWS-import           Network.AWS.Data.Text                (fromText)-import           Network.AWS.S3.CreateMultipartUpload-import           Network.AWS.S3.StreamingUpload-import           System.Environment-import           System.IO                            (BufferMode (BlockBuffering),-                                                       hSetBuffering, stdin)+import Data.Conduit        (($$))+import Data.Conduit.Binary (sourceHandle)+import Data.Text           (pack) +import Network.AWS+import Network.AWS.Data.Text                (fromText)+import Network.AWS.S3.CreateMultipartUpload+import Network.AWS.S3.StreamingUpload++import System.Environment+import System.IO          (BufferMode(BlockBuffering), hSetBuffering, stdin)++#if !MIN_VERSION_base(4,8,0)+import Control.Applicative (pure, (<$>), (<*>))+#endif+ main :: IO () main = do   args <- getArgs@@ -24,9 +29,9 @@                  <*> fromText (pack bucket)                  <*> fromText (pack key)       of-        Right (creds,reg,buck,ky) -> do+        Right (creds,_reg,buck,ky) -> do #if !MIN_VERSION_amazonka(1,4,4)-          env <- newEnv reg creds+          env <- newEnv _reg creds #else           env <- newEnv creds #endif@@ -43,9 +48,9 @@                 <*> (fromText (pack region) :: Either String Region)                 <*> fromText (pack bucket)       of-        Right (creds,reg,buck) -> do+        Right (creds,_reg,buck) -> do #if !MIN_VERSION_amazonka(1,4,4)-          env <- newEnv reg creds+          env <- newEnv _reg creds #else           env <- newEnv creds #endif
README.md view
@@ -1,2 +1,3 @@-# amazonka-s3-streaming-Provides a conduit based interface to uploading data to S3 using the Multipart API+# amazonka-s3-streaming [![Build Status](https://travis-ci.org/axman6/amazonka-s3-streaming.svg?branch=master)](https://travis-ci.org/axman6/amazonka-s3-streaming)++Provides a conduit based streaming interface and a concurrent interface to uploading data to S3 using the Multipart API.
amazonka-s3-streaming.cabal view
@@ -1,5 +1,5 @@ name: amazonka-s3-streaming-version: 0.1.0.3+version: 0.1.0.4 cabal-version: >=1.10 build-type: Simple license: BSD3@@ -52,7 +52,7 @@         amazonka >=1.4.3 && <1.5,         amazonka-core >=1.4.3 && <1.5,         amazonka-s3 >=1.4.3 && <1.5,-        amazonka-s3-streaming >=0.1.0.3 && <0.2,+        amazonka-s3-streaming >=0.1.0.4 && <0.2,         conduit-extra >=1.1.15 && <1.2,         conduit >=1.2.8 && <1.3,         bytestring >=0.10.8.1 && <0.11,
src/Network/AWS/S3/StreamingUpload.hs view
@@ -18,52 +18,59 @@     , chunkSize ) where -import           Network.AWS                            (Error, HasEnv (..),-                                                         LogLevel (..),-                                                         MonadAWS, getFileSize,-                                                         hashedBody, send,-                                                         toBody)+import Network.AWS+       ( HasEnv(..)+       , LogLevel(..)+       , MonadAWS+       , getFileSize+       , hashedBody+       , send+       , toBody+       ) -import           Control.Monad.Trans.AWS                (AWSConstraint)-import           Network.AWS.Data.Crypto                (Digest, SHA256,-                                                         hashFinalize, hashInit,-                                                         hashUpdate)+import Control.Monad.Trans.AWS (AWSConstraint)+import Network.AWS.Data.Crypto+       (Digest, SHA256, hashFinalize, hashInit, hashUpdate) -import           Network.AWS.S3.AbortMultipartUpload-import           Network.AWS.S3.CompleteMultipartUpload-import           Network.AWS.S3.CreateMultipartUpload-import           Network.AWS.S3.ListMultipartUploads-import           Network.AWS.S3.Types                   (BucketName, cmuParts, completedMultipartUpload,-                                                         completedPart, muKey,-                                                         muUploadId)-import           Network.AWS.S3.UploadPart+import Network.AWS.S3.AbortMultipartUpload+import Network.AWS.S3.CompleteMultipartUpload+import Network.AWS.S3.CreateMultipartUpload+import Network.AWS.S3.ListMultipartUploads+import Network.AWS.S3.Types+       ( BucketName+       , cmuParts+       , completedMultipartUpload+       , completedPart+       , muKey+       , muUploadId+       )+import Network.AWS.S3.UploadPart -import           Control.Applicative-import           Control.Category                       ((>>>))-import           Control.Monad                          (forM_, when, (>=>))-import           Control.Monad.IO.Class                 (MonadIO, liftIO)-import           Control.Monad.Morph                    (lift)-import           Control.Monad.Trans.Resource           (MonadBaseControl,-                                                         MonadResource, throwM)+import Control.Applicative+import Control.Category             ((>>>))+import Control.Monad                (forM_, when, (>=>))+import Control.Monad.IO.Class       (MonadIO, liftIO)+import Control.Monad.Morph          (lift)+import Control.Monad.Trans.Resource (MonadBaseControl, MonadResource, throwM) -import           Data.Conduit                           (Sink, await)-import           Data.Conduit.List                      (sourceList)+import Data.Conduit      (Sink, await)+import Data.Conduit.List (sourceList) -import           Data.ByteString                        (ByteString)-import qualified Data.ByteString                        as BS-import           Data.ByteString.Builder                (stringUtf8)-import           System.IO.MMap                         (mmapFileByteString)+import           Data.ByteString         (ByteString)+import qualified Data.ByteString         as BS+import           Data.ByteString.Builder (stringUtf8)+import           System.IO.MMap          (mmapFileByteString) -import qualified Data.DList                             as D-import           Data.List                              (unfoldr)-import           Data.List.NonEmpty                     (nonEmpty)+import qualified Data.DList         as D+import           Data.List          (unfoldr)+import           Data.List.NonEmpty (nonEmpty) -import           Control.Exception.Lens                 (catching, handling)-import           Control.Lens+import Control.Exception.Lens (catching, handling)+import Control.Lens -import           Text.Printf                            (printf)+import Text.Printf (printf) -import           Control.Concurrent.Async.Lifted        (forConcurrently)+import Control.Concurrent.Async.Lifted (forConcurrently)  -- | Minimum size of data which will be sent in a single part, currently 6MB chunkSize :: Int@@ -82,7 +89,7 @@ be charged for storage of the parts until it is completed or aborted. See the AWS documentation for more details. -May throw 'Error'+May throw 'Network.AWS.Error' -} streamUpload :: (MonadResource m, MonadAWS m, AWSConstraint r m)              => CreateMultipartUpload@@ -168,7 +175,7 @@ into memory as a strict 'ByteString'. The usual caveats about mmaped files apply: if the file is modified during this operation, the data may become corrupt. -May throw `Error`, or `IOError`.+May throw `Network.AWS.Error`, or `IOError`. -} concurrentUpload :: (MonadAWS m, MonadBaseControl IO m)                  => UploadLocation -> CreateMultipartUpload -> m CompleteMultipartUploadResponse@@ -213,7 +220,7 @@   forM_ (rs ^. lmursUploads) $ \mu -> do     let mki = (,) <$> mu ^. muKey <*> mu ^. muUploadId     case mki of-      Nothing -> pure ()+      Nothing        -> pure ()       Just (key,uid) -> send (abortMultipartUpload bucket key uid) >> pure ()