antiope-s3-6.1.0: 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.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 $ fmap LBS.toStrict <$> LBS.download bucketName objectKey
downloadFromS3Uri :: (MonadAWS m, MonadUnliftIO m)
=> S3Uri
-> m (Maybe BS.ByteString)
downloadFromS3Uri s3Uri = runResourceT $ fmap LBS.toStrict <$> LBS.downloadFromS3Uri s3Uri