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 -- Actions 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)