antiope-s3 6.1.3 → 6.1.4
raw patch · 2 files changed
+21/−15 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Antiope.S3.Lazy: downloadRequest :: (MonadAWS m, MonadResource m) => GetObject -> m (Maybe ByteString)
+ Antiope.S3.Lazy: unsafeDownloadRequest :: (MonadAWS m, MonadResource m) => GetObject -> m ByteString
Files
- antiope-s3.cabal +2/−2
- src/Antiope/S3/Lazy.hs +19/−13
antiope-s3.cabal view
@@ -2,10 +2,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: b136f26caee3f70a03b45b3a3210ac5a8432285cc62b59f1ceb669e17839bded+-- hash: 3ca4d7ebcb62cbfab41eb5730b74a19e7bfef678711ad92e24e8e7fbb5252d44 name: antiope-s3-version: 6.1.3+version: 6.1.4 description: Please see the README on Github at <https://github.com/arbor/antiope#readme> category: Services homepage: https://github.com/arbor/antiope#readme
src/Antiope/S3/Lazy.hs view
@@ -2,40 +2,46 @@ module Antiope.S3.Lazy ( unsafeDownload+ , unsafeDownloadRequest , download+ , downloadRequest , downloadFromS3Uri ) where +import Antiope.Core.Error import Antiope.S3.GetObject import Antiope.S3.Types (S3Uri (S3Uri)) import Control.Lens-import Control.Monad.Catch (catch) import Control.Monad.Trans.Resource-import Network.AWS (Error (..), MonadAWS, ServiceError (..))-import Network.HTTP.Types.Status (Status (..))+import Network.AWS (MonadAWS) import qualified Data.ByteString.Lazy as LBS+import qualified Network.AWS as AWS import qualified Network.AWS.S3 as AWS +unsafeDownloadRequest :: (MonadAWS m, MonadResource m)+ => AWS.GetObject+ -> m LBS.ByteString+unsafeDownloadRequest req = do+ resp <- AWS.send req+ lazyByteString (resp ^. AWS.gorsBody)+ unsafeDownload :: (MonadAWS m, MonadResource m) => AWS.BucketName -> AWS.ObjectKey -> m LBS.ByteString-unsafeDownload bucketName objectKey = do- resp <- getObject bucketName objectKey- lazyByteString (resp ^. AWS.gorsBody)+unsafeDownload bucketName objectKey = unsafeDownloadRequest (AWS.getObject bucketName objectKey) +downloadRequest :: (MonadAWS m, MonadResource m)+ => AWS.GetObject+ -> m (Maybe LBS.ByteString)+downloadRequest req = handle404ToNone (unsafeDownloadRequest req)+ download :: (MonadAWS m, MonadResource m) => AWS.BucketName -> AWS.ObjectKey -> m (Maybe LBS.ByteString)-download bucketName objectKey = do- ebs <- (Right <$> unsafeDownload bucketName objectKey) `catch` \(err :: Error) -> case err of- (ServiceError (ServiceError' _ (Status 404 _) _ _ _ _)) -> return (Left LBS.empty)- _ -> throwM err- case ebs of- Right bs -> return (Just bs)- Left _ -> return Nothing+download bucketName objectKey = downloadRequest (AWS.getObject bucketName objectKey) downloadFromS3Uri :: (MonadAWS m, MonadResource m) => S3Uri