跳转到主要内容

使用botocore和aiohttp的aws服务异步客户端

项目描述

https://travis-ci.org/aio-libs/aiobotocore.svg?branch=master https://codecov.io/gh/aio-libs/aiobotocore/branch/master/graph/badge.svg https://img.shields.io/pypi/v/aiobotocore.svg

使用botocoreaiohttp/asyncio的亚马逊服务异步客户端。

此库的主要目的是支持亚马逊S3 API,但其他服务也应正常工作(可能需要一些小的修复)。目前我们只测试了S3的上传/下载API,其他用户报告说SQS和Dynamo服务也正常工作。更多测试即将到来。

安装

$ pip install aiobotocore

基本示例

import asyncio
import aiobotocore

AWS_ACCESS_KEY_ID = "xxx"
AWS_SECRET_ACCESS_KEY = "xxx"


async def go(loop):
    bucket = 'dataintake'
    filename = 'dummy.bin'
    folder = 'aiobotocore'
    key = '{}/{}'.format(folder, filename)

    session = aiobotocore.get_session(loop=loop)
    async with session.create_client('s3', region_name='us-west-2',
                                   aws_secret_access_key=AWS_SECRET_ACCESS_KEY,
                                   aws_access_key_id=AWS_ACCESS_KEY_ID) as client:
        # upload object to amazon s3
        data = b'\x01'*1024
        resp = await client.put_object(Bucket=bucket,
                                            Key=key,
                                            Body=data)
        print(resp)

        # getting s3 object properties of file we just uploaded
        resp = await client.get_object_acl(Bucket=bucket, Key=key)
        print(resp)

        # delete object from s3
        resp = await client.delete_object(Bucket=bucket, Key=key)
        print(resp)

        # list s3 objects using paginator
        paginator = client.get_paginator('list_objects')
        async for result in paginator.paginate(Bucket=bucket, Prefix=folder):
            for c in result.get('Contents', []):
                print(c)

        # get object from s3
        response = await client.get_object(Bucket=bucket, key=key)
        # this will ensure the connection is correctly re-used/closed
        async with response['Body'] as stream:
            bytes = await stream.read()

loop = asyncio.get_event_loop()
loop.run_until_complete(go(loop))

运行测试

确保您已安装开发需求,并且可以通过环境变量访问亚马逊密钥和秘密

$ cd aiobotocore
$ export AWS_ACCESS_KEY_ID=xxx
$ export AWS_SECRET_ACCESS_KEY=xxx
$ pip install -Ur requirements-dev.txt

执行测试套件

$ py.test -v tests

邮件列表

https://groups.google.com/forum/#!forum/aio-libs

需求

变更

0.2.3 (XXXX-XX-XX)

0.2.2 (2017-03-07)

  • 设置 aiobotocore.__all__ 以支持 * 导入 #121 (感谢 @graingert)

  • 修复 head_object 响应中的 ETag #132

0.2.1 (2017-02-01)

  • 通过 botocore 规范化头部并处理重定向 #115 (感谢 @Fedorof)

0.2.0 (2017-01-30)

  • 添加对代理的支持 (感谢 @jjonek)

  • 删除 AioConfig verify_ssl connector_arg,因为这由 create_client verify 参数处理

  • 删除 AioConfig limit connector_arg,因为这现在由 Config max_pool_connections 属性处理 (注意默认值为 10)

0.1.1 (2017-01-16)

  • 将 botocore 更新到版本 1.5.0

0.1.0 (2017-01-12)

  • 将超时传递给 aiohttp.request 以强制执行 read_timeout #86 (感谢 @vharitonsky) (由于 read_timeout 启用更改而提升到下一个语义版本)

0.0.6 (2016-11-19)

  • 添加对纯响应的强制执行 #57 (感谢 @rymir)

  • 将 botocore 更新到版本 1.4.73 #74 (感谢 @vas3k)

0.0.5 (2016-06-01)

  • 初始Alpha版本

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

aiobotocore-botorange-0.1.0.tar.gz (16.5 kB 查看哈希值)

上传时间 源代码

构建分发

aiobotocore_botorange-0.1.0-py3-none-any.whl (17.3 kB 查看哈希值)

上传时间 Python 3

支持