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 +1/−1
- src/Antiope/S3.hs +23/−6
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.