packages feed

antiope-s3 7.3.0 → 7.3.1

raw patch · 2 files changed

+24/−7 lines, 2 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Antiope.S3: lsEntries :: MonadAWS m => BucketName -> ObjectKey -> m [ObjectKey]

Files

antiope-s3.cabal view
@@ -1,7 +1,7 @@ cabal-version: 2.2  name:               antiope-s3-version:            7.3.0+version:            7.3.1 synopsis:           Please see the README on Github at <https://github.com/arbor/antiope#readme> description:        Please see the README on Github at <https://github.com/arbor/antiope#readme>. category:           Services
src/Antiope/S3.hs view
@@ -9,6 +9,7 @@ , toS3Uri , lsBucketResponseStream , lsBucketStream+, lsEntries , lsPrefix , deleteFiles , deleteFilesExcept@@ -28,7 +29,7 @@ import Control.Monad import Control.Monad.Trans.AWS      hiding (send) import Control.Monad.Trans.Resource-import Data.Conduit.List            (unfoldM)+import Data.Conduit.List            (consume, unfoldM) import Data.Maybe                   (catMaybes, isJust) import Data.Monoid                  ((<>)) import Data.Text                    as T (Text, pack, unpack)@@ -38,10 +39,11 @@ import Network.AWS.S3 import Network.URI                  (URI (..), URIAuth (..), parseURI, unEscapeString) -import qualified Data.ByteString      as BS-import qualified Data.ByteString.Lazy as LBS-import qualified Data.List            as List-import qualified Network.AWS          as AWS+import qualified Data.ByteString          as BS+import qualified Data.ByteString.Lazy     as LBS+import qualified Data.Conduit.Combinators as CC+import qualified Data.List                as List+import qualified Network.AWS              as AWS  chunkSize :: ChunkSize chunkSize = ChunkSize (1024 * 1024)@@ -141,7 +143,7 @@   -> ConduitM a Object m () lsBucketStream bar = lsBucketResponseStream bar .| concatMapC (^. lovrsContents) --- | Lists the specified prefix in a bucket.+-- | Lists the specified prefix in a bucket, recursively. lsPrefix :: MonadAWS m   => BucketName   -> Prefix@@ -151,6 +153,21 @@     lsBucketStream (listObjectsV2 b & lovPrefix ?~ p)     .| mapC (S3Uri b . view oKey)     .| sinkList++-- | Lists the specified objects in a bucket, non-recursively.+lsEntries :: MonadAWS m+  => BucketName+  -> ObjectKey+  -> m [ObjectKey]+lsEntries bkt dir =+  let req = listObjectsV2 bkt & lovPrefix ?~ toText dir & lovDelimiter ?~ ('/' :: Delimiter)+  in runConduit $ lsBucketResponseStream req .| CC.concatMap lsResponseToObjectsList .| consume+  where+    lsResponseToObjectsList rs = keys <> prefixes+      where+        keys = rs ^. lovrsContents <&> (^. oKey)+        maybePrefixes = rs ^. lovrsCommonPrefixes <&> (^. cpPrefix)+        prefixes = ObjectKey <$> catMaybes maybePrefixes  -- | Deletes specified keys in a bucket. -- Returns a list of keys that were successfully deleted.