diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2016 Alexander Thiemann
+Copyright (c) 2016 - 2017 Alexander Thiemann
 
 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
 
diff --git a/aws-simple.cabal b/aws-simple.cabal
--- a/aws-simple.cabal
+++ b/aws-simple.cabal
@@ -1,16 +1,16 @@
--- This file has been generated from package.yaml by hpack version 0.14.0.
+-- This file has been generated from package.yaml by hpack version 0.15.0.
 --
 -- see: https://github.com/sol/hpack
 
 name:           aws-simple
-version:        0.1.0.0
+version:        0.3.0.0
 synopsis:       Dead simple bindings to commonly used AWS Services
-description:    Please see README.md
+description:    Simple bindings to commonly used AWS services
 category:       Web
 homepage:       https://github.com/agrafix/aws-simple#readme
 author:         Alexander Thiemann
 maintainer:     mail@athiemann.net
-copyright:      2016 Alexander Thiemann <mail@athiemann.net>
+copyright:      2016 - 2017 Alexander Thiemann <mail@athiemann.net>
 license:        MIT
 license-file:   LICENSE
 build-type:     Simple
@@ -32,11 +32,12 @@
     , resourcet
     , lens
     , conduit
-    , amazonka
+    , amazonka >= 1.4.5
     , amazonka-core
     , amazonka-s3
     , amazonka-sqs
     , blaze-builder
+    , unordered-containers
   exposed-modules:
       Network.AWS.Simple
   other-modules:
diff --git a/package.yaml b/package.yaml
--- a/package.yaml
+++ b/package.yaml
@@ -1,12 +1,12 @@
 name:                aws-simple
-version:             0.1.0.0
+version:             0.3.0.0
 synopsis:            Dead simple bindings to commonly used AWS Services
-description:         Please see README.md
+description:         Simple bindings to commonly used AWS services
 homepage:            https://github.com/agrafix/aws-simple#readme
 license:             MIT
 author:              Alexander Thiemann
 maintainer:          mail@athiemann.net
-copyright:           2016 Alexander Thiemann <mail@athiemann.net>
+copyright:           2016 - 2017 Alexander Thiemann <mail@athiemann.net>
 category:            Web
 extra-source-files:
   - README.md
@@ -21,11 +21,12 @@
   - resourcet
   - lens
   - conduit
-  - amazonka
+  - amazonka >= 1.4.5
   - amazonka-core
   - amazonka-s3
   - amazonka-sqs
   - blaze-builder
+  - unordered-containers
 
 library:
   source-dirs: src
diff --git a/src/Network/AWS/Simple.hs b/src/Network/AWS/Simple.hs
--- a/src/Network/AWS/Simple.hs
+++ b/src/Network/AWS/Simple.hs
@@ -1,11 +1,13 @@
 {-# LANGUAGE OverloadedStrings #-}
 module Network.AWS.Simple
        ( connectAWS, AWSHandle
+       , AWS.Region (..)
          -- * Logging
        , AWS.LogLevel (..), LogFun
          -- * S3
        , AWSFileReadability(..)
        , s3Upload, s3Download, s3Delete, s3CopyInBucket
+       , s3MetaData
          -- * SQS
        , sqsGetQueue, AWSQueue
        , sqsSendMessage
@@ -19,6 +21,7 @@
 import Control.Monad.Trans
 import Control.Monad.Trans.Resource
 import Data.Conduit
+import Data.HashMap.Strict (HashMap)
 import Data.Int
 import Data.Maybe
 import Data.Monoid
@@ -37,13 +40,13 @@
 
 type LogFun = AWS.LogLevel -> BS.ByteString -> IO ()
 
-connectAWS :: LogFun -> IO AWSHandle
-connectAWS logF =
+connectAWS :: AWS.Region -> LogFun -> IO AWSHandle
+connectAWS reg logF =
     AWSHandle <$> hdl
     where
         hdl =
-            do x <- AWS.newEnv AWS.Frankfurt AWS.Discover
-               pure (x & AWS.envLogger .~ mkLogFun logF)
+            do x <- AWS.newEnv AWS.Discover
+               pure (x & AWS.envLogger .~ mkLogFun logF & AWS.envRegion .~ reg )
 
 mkLogFun :: LogFun -> AWS.Logger
 mkLogFun f ll logBuilder=
@@ -58,18 +61,33 @@
     | AWSFilePrivate
     deriving (Show, Eq, Enum, Bounded)
 
+s3MetaData ::
+    AWSHandle
+    -> T.Text
+    -> T.Text
+    -> IO (HashMap T.Text T.Text)
+s3MetaData hdl bucket objName =
+    runAWS hdl $
+    do rs <- AWS.send ho
+       pure $ view S3.horsMetadata rs
+    where
+      ho = S3.headObject (S3.BucketName bucket) (S3.ObjectKey objName)
+
 s3Upload ::
     AWSHandle
     -> AWSFileReadability
+    -> HashMap T.Text T.Text
     -> T.Text
     -> T.Text
     -> Int64
     -> Source (ResourceT IO) BS.ByteString -> IO ()
-s3Upload hdl readability bucket objName size fileSource =
+s3Upload hdl readability metaData bucket objName size fileSource =
     runAWS hdl $
     do contentHash <- lift $ fileSource $$ AWS.sinkSHA256
        let body = AWS.HashedStream contentHash (fromIntegral size) fileSource
-           po = S3.putObject (S3.BucketName bucket) (S3.ObjectKey objName) (AWS.Hashed body)
+           po =
+               (S3.putObject (S3.BucketName bucket) (S3.ObjectKey objName) (AWS.Hashed body))
+               & S3.poMetadata .~ metaData
            poACL =
                case readability of
                  AWSFilePrivate -> po
diff --git a/stack.yaml b/stack.yaml
--- a/stack.yaml
+++ b/stack.yaml
@@ -1,3 +1,11 @@
-resolver: lts-7.9
+resolver: lts-7.15
 packages:
   - .
+extra-deps:
+  - http-client-0.5.5
+  - http-client-tls-0.3.3.1
+  - http-conduit-2.2.3
+  - amazonka-core-1.4.5
+  - amazonka-1.4.5
+  - amazonka-s3-1.4.5
+  - amazonka-sqs-1.4.5
