Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

Asyncio-based client for S3

Project Description

The aio-s3 is a small library for accessing Amazon S3 Service that leverages python’s standard asyncio library.

Only read operations are supported so far, contributions are welcome.

Example

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[0])
    print(len(response))
    response = yield from bu.download(lst[0])
    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())

Reference

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.

Note

This method raises assertion error if there are more keys than max_keys. We do not have a method to return keys iteratively yet.

Bucket.get(key):
Fetches object names key. The key might be a string or Key object. Returns bytes. This method is coroutine.
Bucket.download(key):
Allows iteratively download the key. The object returned by the coroutine is an object having method .read(bufsize) which is a coroutine too.
Key

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_modifieddatetime.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
Release History

Release History

This version
History Node

0.1

Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
aio-s3-0.1.tar.gz (3.7 kB) Copy SHA256 Checksum SHA256 Source Sep 17, 2014

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting