antiope-s3-6.1.1: src/Antiope/S3/Strict.hs
{-# LANGUAGE ScopedTypeVariables #-}
module Antiope.S3.Strict
( unsafeDownload
, download
, downloadFromS3Uri
) where
import Antiope.Core ()
import Antiope.S3.Types (S3Uri)
import Control.Monad ((<$!>))
import Control.Monad.Trans.AWS hiding (send)
import Control.Monad.Trans.Resource
import Network.AWS (MonadAWS)
import qualified Antiope.S3.Lazy as LBS
import qualified Data.ByteString as BS
import qualified Data.ByteString.Lazy as LBS
import qualified Network.AWS.S3 as AWS
unsafeDownload :: (MonadAWS m, MonadUnliftIO m)
=> AWS.BucketName
-> AWS.ObjectKey
-> m BS.ByteString
unsafeDownload bucketName objectKey = runResourceT $ LBS.toStrict <$!> LBS.unsafeDownload bucketName objectKey
download :: (MonadAWS m, MonadUnliftIO m)
=> AWS.BucketName
-> AWS.ObjectKey
-> m (Maybe BS.ByteString)
download bucketName objectKey = runResourceT $ (LBS.toStrict <$!>) <$!> LBS.download bucketName objectKey
downloadFromS3Uri :: (MonadAWS m, MonadUnliftIO m)
=> S3Uri
-> m (Maybe BS.ByteString)
downloadFromS3Uri s3Uri = runResourceT $ (LBS.toStrict <$!>) <$!> LBS.downloadFromS3Uri s3Uri