Asyncio-based client for S3
aio-s3 is a small library for accessing Amazon S3 Service that leverages
Only read operations are supported so far, contributions are welcome.
Basically all methods supported so far are shown in this example:
import asyncio from aios3.bucket import Bucket @asyncio.coroutine def main(): bucket = Bucket('uaprom-logs', aws_region='eu-west-1', aws_endpoint='s3-eu-west-1.amazonaws.com', aws_key='AKIAIOSFODNN7EXAMPLE', aws_secret='wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY') # List keys based on prefix lst = yield from bu.list('some-prefix') response = yield from bu.get(lst) print(len(response)) response = yield from bu.download(lst) print("GOT Response", dir(response)) while 1: chunk = yield from response.read(65536) print("Received", len(chunk)) if not chunk: break asyncio.get_event_loop().run_until_complete(main())
- Bucket(name, *, aws_key, aws_secret, aws_region, aws_endpoint, connector):
- Creates a wrapper object for accessing S3 bucket. Note unlike in many other bindings you need to specify aws_region (and probably aws_endpoint) correctly (see a table). The connector is an aiohttp connector, which might be used to setup proxy or other useful things.
- Bucket.list(prefix='', max_keys=1000):
Lists items which start with prefix. Each returned item is a Key object. This method is coroutine.
This method raises assertion error if there are more keys than max_keys. We do not have a method to return keys iteratively yet.
- Fetches object names key. The key might be a string or Key object. Returns bytes. This method is coroutine.
- Allows iteratively download the key. The object returned by the coroutine is an object having method .read(bufsize) which is a coroutine too.
Represents an S3 key returned by Bucket.list. Key has at least the following attributes:
- key – the full name of the key stored in a bucket
- last_modified – datetime.datetime object
- etag – The ETag, usually md5 of the content with additional quotes
- size – Size of the object in bytes
- storage_class – Storage class of the object