module Network.AWS.Flow.S3
( putObjectAction
) where
import Network.AWS.Data.Body
import Control.Monad.Reader
import Control.Monad.Trans.AWS
import Data.Conduit.Binary
import Data.Monoid
import Network.AWS.Flow.Types
import Network.AWS.S3
putObjectAction :: MonadFlow m => Artifact -> m ()
putObjectAction (key, hash, size, blob) = do
timeout' <- asks feTimeout
bucket' <- asks feBucket
prefix <- asks fePrefix
void $ timeout timeout' $
send $ putObject (BucketName $ bucket') (ObjectKey $ prefix <> "/" <> key) (Hashed $ hashedBody hash size $ sourceLbs blob)