Learning AWS SDK for Python and basic S3 operations with sample code
This section introduces you about how to install AWS SDK for Python and how to create S3 buckets, put objects, get objects using the sample code, and explains how the sample code runs as well.
Getting ready
Boto, a Python interface, is offered by Amazon Web Services and all of its features work with Python 2.6 and 2.7. The next major version to support Python 3.3 is underway.
To get started with AWS SDK for Python (Boto), it is necessary to install the following on your development machine:
How to do it…
Proceed with the following steps to install the packages and run the sample application:
- Download the sample SDK application:
$ git clone https://github.com/awslabs/aws-python-sample.git $ cd aws-python-sample/
- Run the sample application:
$ python s3_sample.py
How it works…
The sample code works as shown in the following diagram; initiating the credentials to allow access to Amazon S3, creating a bucket in a region, putting and getting objects into the bucket, and then finally deleting the objects and the bucket.
Now, let's run the sample application and see the output of the preceding command, as shown in the following screenshot, and then follow the source code step by step:
Now, let's examine the sample code; the path is aws-python-sample/s3-sample.py
.
The connect_s3
method creates a connection for accessing S3:
s3 = boto.connect_s3()
The create_bucket
method creates an S3 bucket with the specified name defined as the bucket_name
variable in the standard US region by default:
bucket_name = "python-sdk-sample-%s" % uuid.uuid4() print "Creating new bucket with name: " + bucket_name bucket = s3.create_bucket(bucket_name)
By creating a new key
object, it stores new data in the bucket:
from boto.s3.key import Key k = Key(bucket) k.key = 'python_sample_key.txt'
The delete
method deletes all the objects in the bucket:
k.delete()
The delete_bucket
method deletes the bucket:
bucket.s3.delete_bucket(bucket_name)
The whole sample code is as follows:
import boto import uuid s3 = boto.connect_s3() bucket_name = "python-sdk-sample-%s" % uuid.uuid4() print "Creating new bucket with name: " + bucket_name bucket = s3.create_bucket(bucket_name) from boto.s3.key import Key k = Key(bucket) k.key = 'python_sample_key.txt' print "Uploading some data to " + bucket_name + " with key: " + k.key k.set_contents_from_string('Hello World!') expires_in_seconds = 1800 print "Generating a public URL for the object we just uploaded. This URL will be active for %d seconds" % expires_in_seconds print print k.generate_url(expires_in_seconds) print raw_input("Press enter to delete both the object and the bucket...") print "Deleting the object." k.delete() print "Deleting the bucket." s3.delete_bucket(bucket_name)
See also
- AWS SDK for the Python sample application, available at https://github.com/boto/boto
- Developer Guide and the API documentation available at http://boto.readthedocs.org/en/latest/