module Network.S3
(
generateS3URL
, module Network.S3.Types
) where
import Network.S3.Sign
import Network.S3.Time
import Network.S3.Types
import Network.S3.URL
generateS3URL :: S3Keys
-> S3Request
-> IO S3URL
generateS3URL S3Keys{..} S3Request{..} = do
time <- getExpirationTimeStamp secondsToExpire
let url = case s3method of
S3GET -> getURL bucketName objectName time
S3PUT -> putURL bucketName objectName time
req = s3URL bucketName objectName publicKey time (sign secretKey url)
return (S3URL req)