Run this script with below arguments
./aws-s3upload.py S3_BUCKET_NAME SOURCE_FILE S3_TARGET_DIR
Example ./aws-s3upload.py test_s3_bucket /app/file/tanu.jpg Images/data
above command will upload the files into test_s3_bucket/Images/data/tanu.jpg
#!/usr/bin/env python
import boto.ec2
import sys
import os
import ntpath
#### Configuration section ####
IAM_ID = 'PLACE IAM ID HERE'
IAM_SECRET ='PLACE IAM SECRET HERE'
REGION = 'us-east-1'
conn = boto.s3.connect_to_region(REGION, aws_access_key_id=IAM_ID, aws_secret_access_key=IAM_SECRET)
if (len(sys.argv) != 4 ):
print "USAGE ./aws-s3upload.py S3_BUCKET_NAME FileName TARGETDIR"
sys.exit(1)
s3_bucket = sys.argv[1]
filename = sys.argv[2]
targetpath = sys.argv[3]
def percent_cb(complete, total):
sys.stdout.write('.')
sys.stdout.flush()
try:
print 'Uploading %s to Amazon S3 bucket %s' % (filename, s3_bucket)
bucket = conn.get_bucket(s3_bucket)
file=ntpath.basename(filename)
full_key_name = os.path.join(targetpath, file)
print("Target Upload Location " + full_key_name)
k = bucket.new_key(full_key_name)
k.set_contents_from_filename(filename,cb=percent_cb, num_cb=10)
except Exception,e:
print str(e)
print "error"