使用botocore和aiohttp的aws服务异步客户端
项目描述
使用botocore和aiohttp/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
邮件列表
需求
变更
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.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 62312ea3482bbb38b35a5a7a6a7e71bb3565d6758e839bc638d84e6811dda9e6 |
|
MD5 | f3d5afaff140ee2f3bacb5362ec321cd |
|
BLAKE2b-256 | 0b89065ec21b57987daa3a71b3ebe3d96173fe5a6eb082730ce78f60cad1fff4 |
关闭
aiobotocore_botorange-0.1.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7ffbbe13606152b7fa22be5a2817fe791a335b93c17b9babc9f0cb0d16fe6f23 |
|
MD5 | ec0658d813864985596c3dba1c0b73ba |
|
BLAKE2b-256 | ecf43dc639b6b6d1175f22b15e66c91d525de1774df7d1ed4a76cd3ba5ba0515 |