@@ -237,7 +237,18 @@ Client.prototype.putStream = function(stream, filename, headers, fn){
   var req = self.put(filename, headers);
 
   registerReqListeners(req, fn);
-  stream.on('error', fn)
+  stream.on('error', fn);
+
+  var written = 0;
+  var total = headers['Content-Length'];
+  stream.on('data', function(chunk){
+    written += chunk.length;
+    req.emit('progress', {
+        percent: written / total * 100 | 0
+      , written: written
+      , total: total
+    });
+  });
 
   stream.pipe(req);
   return req;