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

aiobotocore-botorange的Python项目详细描述


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

使用botocoreaiohttp/asyncio的Amazon服务异步客户端。

这个库的主要目的是支持amazon s3 api,但是其他服务 应该可以工作(可能需要一些小的修正)。现在我们已经测试了 只有s3的上传/下载api,其他用户报告sqs和dynamo 服务也起作用。更多的测试即将到来。

安装

$ pip install aiobotocore

基本示例

importasyncioimportaiobotocoreAWS_ACCESS_KEY_ID="xxx"AWS_SECRET_ACCESS_KEY="xxx"asyncdefgo(loop):bucket='dataintake'filename='dummy.bin'folder='aiobotocore'key='{}/{}'.format(folder,filename)session=aiobotocore.get_session(loop=loop)asyncwithsession.create_client('s3',region_name='us-west-2',aws_secret_access_key=AWS_SECRET_ACCESS_KEY,aws_access_key_id=AWS_ACCESS_KEY_ID)asclient:# upload object to amazon s3data=b'\x01'*1024resp=awaitclient.put_object(Bucket=bucket,Key=key,Body=data)print(resp)# getting s3 object properties of file we just uploadedresp=awaitclient.get_object_acl(Bucket=bucket,Key=key)print(resp)# delete object from s3resp=awaitclient.delete_object(Bucket=bucket,Key=key)print(resp)# list s3 objects using paginatorpaginator=client.get_paginator('list_objects')asyncforresultinpaginator.paginate(Bucket=bucket,Prefix=folder):forcinresult.get('Contents',[]):print(c)# get object from s3response=awaitclient.get_object(Bucket=bucket,key=key)# this will ensure the connection is correctly re-used/closedasyncwithresponse['Body']asstream:bytes=awaitstream.read()loop=asyncio.get_event_loop()loop.run_until_complete(go(loop))

运行测试

确保安装了开发需求和amazon密钥, 可通过环境变量访问机密:

$ 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(xx xx-xx-xx)

0.2.2(2017-03-07)

  • 设置aiobotocore。uuuu all_uuu用于*导入121(感谢@graingert)
  • 在head_object response_132中修复ETag

0.2.1(2017-02-01)

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

0.2.0(2017-01-30)

    <添加代理的支持(谢谢))
  • 删除aioconfig verify_ssl connector_arg,因为这是由 创建客户机验证参数
  • 删除aioconfig limit connector_arg,因为这现在由处理 通过configmax_pool_connections属性(注意默认值为10)

0.1.1(2017-01-16)

  • BOTOCORE更新到1.5.0版

0.1.0(2017-01-12)

  • 将超时传递给aiohttp.request以强制读取超时86(感谢@vharitonsky) (由于读取超时启用更改,升级到下一个语义版本)

0.0.6(2016-11-19)

  • 增加了简单响应的执行57(感谢@rymir)
  • Botocore更新到1.4.73 74版(感谢@VAS3K)

0.0.5(2016-06-01)

  • 初始α释放

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何读取、验证和移动数据。csv文件?   用于在线蛇游戏的java解析scaing   java JavaFX:在窗口上移动元素(阶段)调整大小   mysql如何使用java中的IOUtils包在jsp中显示多个图像?   Java dateFormat不可解析日期异常   spring mvc java。执行单元测试时lang.AssertionError   java在一个webapp中运行多个调度器有什么问题吗?   JAVAlang.ArrayIndexOutofBounds异常:1未来。get()多线程   java使用MDC或spring boot中的任何过滤器屏蔽日志消息中的密码,而不使用logback。xml文件   与应用服务器的java AJP和SSL通信   java Hibernate更新列表中的特定对象   Java小程序:使用keylistener移动多边形   java访问是一个独立于MainActivity的进程   来自服务器的java重复密钥或完整性约束冲突消息:“列“volume”不能为null”   java是否有任何方法可以确保在Flink on job cancel with savepoint上通知所有检查点侦听器检查点完成?