使用aws签名v4对aws请求进行签名的python库。
aws-request-signer的Python项目详细描述
AWS请求签名人
A python library to sign AWS requests using AWS Signature V4.
这个小python库的作用只有一个:帮助您签署http 与AWS(和兼容)服务一起使用的请求。图书馆是 无pinionated,应该与任何使http 请求(请求,aiohttp)。
它支持为http请求生成授权头, 预先签署url,以便您可以在其他地方轻松使用它们并签署s3 发布用于HTML表单的策略。
这个库没有要求,但是带有一个身份验证 请求包的帮助程序。
安装
aws-request-signer
可从pypi获得:
pip install aws-request-signer
用法示例
下面是一个如何使用库签署将文件上载到 minios3桶在本地计算机上运行:
importhashlibimportrequestsfromaws_request_signerimportAwsRequestSignerAWS_REGION=""AWS_ACCESS_KEY_ID="minio"AWS_SECRET_ACCESS_KEY="minio123"URL="http://127.0.0.1:9000/demo/hello_world.txt"# Demo content for our target file.content=b"Hello, World!\n"content_hash=hashlib.sha256(content).hexdigest()# Create a request signer instance.request_signer=AwsRequestSigner(AWS_REGION,AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY,"s3")# The headers we'll provide and want to sign.headers={"Content-Type":"text/plain","Content-Length":str(len(content))}# Add the authentication headers.headers.update(request_signer.sign_with_headers("PUT",URL,headers,content_hash))# Make the request.r=requests.put(URL,headers=headers,data=content)r.raise_for_status()
有关更多示例和用法,请参阅 demo.py。
开发设置
出于开发目的,您可以克隆存储库并使用 poetry安装和维护 依赖关系。没有测试套件。它附带一组预提交 可以格式化(isort,black)并检查代码的钩子(mypy,flake8) 自动。
git clone git@github.com:iksteen/aws-request-signer.git
cd aws-request-signer
poetry install -E demo
poetry run pre-commit install
note:在编写时,mypy使用的typeshed库
包含不正确的requests.auth.AuthBase.__call__
签名
方法。aws请求签名者的存储库包括
请求,直到签名固定在上游。
发布历史记录
- 1.0.0条
- 初次发布。
元
英格玛·斯特恩–@iksteen
根据麻省理工学院的许可证发行。有关详细信息,请参见LICENSE
。
贡献
- 分叉(https://github.com/iksteen/aws-request-signer/fork)
- 创建功能分支(
git checkout -b feature/fooBar
) - 提交更改(
git commit -am 'Add some fooBar'
) - 推到分支(
git push origin feature/fooBar
) - 创建新的拉取请求