         binaryCompressor.encode(JSON.stringify(docData.snapshot), cb)
 
       write_data: ['compress_data', (cb, results) ->
-        path = snapshots_bucket+'/'+docName+'-'+docData.v+'.snapshot'
-        headers = {}
+        params =
+          BucketName: snapshots_bucket
+          ObjectName: docName+'-'+docData.v+'.snapshot'
+          ContentLength: results.compress_data.length
+          Body: results.compress_data
 
         s3_rw_queue.push((c) ->
-          s3.put(path, headers, results.compress_data, c)
+          s3.PutObject(params, c)
         , 'write Snapshot('+docName+'-'+docData.v+')', cb)
       ]
     (error, results) ->

# It uses Dynamo as the metadata store and it uses S3 for snapshot storage as
# Dynamo objects are limited to 64KB in size.
#
# In order to use this backend you must require the 'aws2js', 'async' and the
# 'dynamo' npm packages.
#
# Example usage:

        binaryCompressor.encode(JSON.stringify(docData.snapshot), cb)

      write_data: ['compress_data', (cb, results) ->
        params =
          BucketName: snapshots_bucket
          ObjectName: docName+'-'+docData.v+'.snapshot'
          ContentLength: results.compress_data.length
          Body: results.compress_data

        s3_rw_queue.push((c) ->
          s3.PutObject(params, c)

        , 'write Snapshot('+docName+'-'+docData.v+')', cb)
      ]
    (error, results) ->
