diff --git a/tools/build/upload-to-s3 b/tools/build/upload-to-s3
new file mode 100755
index 0000000..8b02d3b
--- /dev/null
+++ b/tools/build/upload-to-s3
@@ -0,0 +1,63 @@
+#!/usr/bin/python
+
+"""
+Upload a file to S3
+"""
+
+from sys import argv, stdout
+from time import time
+from os.path import basename
+from optparse import OptionParser
+
+from boto.s3.key import Key
+from boto.s3.connection import S3Connection
+
+
+def uploadFile( bucket, filename, dest=None ):
+    "Upload a file to a bucket"
+    if not bucket:
+        bucket = 'onos'
+    if not dest: 
+        key = basename( filename )
+    else:
+        key = dest + basename( filename ) #FIXME add the /
+    print '* Uploading', filename, 'to bucket', bucket, 'as', key
+    stdout.flush()
+    start = time()
+    def callback( transmitted, size ):
+        "Progress callback for set_contents_from_filename"
+        elapsed = time() - start
+        percent = 100.0 * transmitted / size
+        kbps = .001 * transmitted / elapsed
+        print ( '\r%d bytes transmitted of %d (%.2f%%),'
+                ' %.2f KB/sec ' %
+                ( transmitted, size, percent, kbps ) ),
+        stdout.flush()
+    conn = S3Connection()
+    bucket = conn.get_bucket( bucket )
+    k = Key( bucket )
+    k.key = key
+    k.set_contents_from_filename( filename, cb=callback, num_cb=100 )
+    print
+    elapsed = time() - start
+    print "* elapsed time: %.2f seconds" % elapsed
+
+if __name__ == '__main__':
+    usage = "Usage: %prog [options] <file to upload>"
+    parser = OptionParser(usage=usage)
+    parser.add_option("-b", "--bucket", dest="bucket",
+                      help="Bucket on S3")
+    parser.add_option("-d", "--dest", dest="dest",
+                      help="Destination path in bucket")
+    parser.add_option("-k", "--key", dest="awsKey",
+                      help="Bucket on S3")
+    parser.add_option("-s", "--secret", dest="awsSecret",
+                      help="Bucket on S3")
+    (options, args) = parser.parse_args()
+    
+    if len( args ) == 0:
+        parser.error("missing filenames")
+    for file in args:
+        uploadFile( options.bucket, file, options.dest )
+
+    #FIXME key and secret are unused
