{ "info": { "author": "Michal Charemza", "author_email": "michal@charemza.name", "bugtrack_url": null, "classifiers": [ "Framework :: AsyncIO", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# lowhaio-aws-sigv4-unsigned-payload [![CircleCI](https://circleci.com/gh/michalc/lowhaio-aws-sigv4-unsigned-payload.svg?style=svg)](https://circleci.com/gh/michalc/lowhaio-aws-sigv4-unsigned-payload)\n\nAWS Signature Version 4 signing for [lowhaio](https://github.com/michalc/lowhaio), but with UNSIGNED-PAYLOAD. This avoids having to buffer entire objects to memory before upload to S3. However, the length of the object must be known before upload begins.\n\n\n## Installation\n\n```bash\npip install lowhaio lowhaio_aws_sigv4_unsigned_payload\n```\n\n\n## Usage\n\nThe `request` function returned from `lowhaio.Pool` must be wrapped with `lowhaio_aws_sigv4_unsigned_payload.signed`, as in the below example.\n\n```python\nimport os\nfrom lowhaio import Pool\nfrom lowhaio_aws_sigv4_unsigned_payload import signed\n\nrequest, _ = Pool()\n\n\nchunk = 'abcdefghijklmnopqrstuvqxyz'\ncontent_length = str(len(chunk) * 1000).encode()\nasync def body():\n for _ in range(0, 1000)\n \tyield chunk\n\n# A coroutine that returns a tuple a tuple of access key id, secret access\n# key, any other headers, such as x-amz-security-token\nasync def credentials():\n return os.environ['AWS_ACCESS_KEY_ID'], os.environ['AWS_SECRET_ACCESS_KEY'], ()\n\nsigned_request = request(\n request, credentials=credentials, service='s3', region='eu-west-1',\n)\n\ncode, headers, body = await signed_request(\n\tb'PUT', 'https://my-bucket.s3-eu-west-1.amazonaws.com/my-key', body=body\n\theaders=((b'content-length': content_length),))\nawait buffered(body)\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/michalc/lowhaio-aws-sigv4", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "lowhaio-aws-sigv4-unsigned-payload", "package_url": "https://pypi.org/project/lowhaio-aws-sigv4-unsigned-payload/", "platform": "", "project_url": "https://pypi.org/project/lowhaio-aws-sigv4-unsigned-payload/", "project_urls": { "Homepage": "https://github.com/michalc/lowhaio-aws-sigv4" }, "release_url": "https://pypi.org/project/lowhaio-aws-sigv4-unsigned-payload/0.0.4/", "requires_dist": null, "requires_python": ">=3.6.0", "summary": "AWS Signature Version 4 signing for lowhaio, but with UNSIGNED-PAYLOAD", "version": "0.0.4" }, "last_serial": 5557282, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "e3d5179aec4af18a50dcd4cbc07b8e68", "sha256": "222adf8d32fa8d4406dbd80e2e4b0bada75c66e38d86a26a08075e401264f8bd" }, "downloads": -1, "filename": "lowhaio_aws_sigv4_unsigned_payload-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "e3d5179aec4af18a50dcd4cbc07b8e68", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 4329, "upload_time": "2019-05-20T05:49:46", "url": "https://files.pythonhosted.org/packages/97/c1/95bb3dc43b2d1a60853d2e0155eda6d2206d56dbc264bd15e0b74f3aea91/lowhaio_aws_sigv4_unsigned_payload-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aaca0711e25a9df220ff3288d4ef3775", "sha256": "7049027efae8c39c372f9d0bbd9fd48e9b8f87381a9e2cefc1b7bed1e87c2fdc" }, "downloads": -1, "filename": "lowhaio_aws_sigv4_unsigned_payload-0.0.1.tar.gz", "has_sig": false, "md5_digest": "aaca0711e25a9df220ff3288d4ef3775", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 3028, "upload_time": "2019-05-20T05:49:48", "url": "https://files.pythonhosted.org/packages/99/e4/68140f4c6f8e9757bd091766d0f25783c1db2f761e00753c52ed7a1c4795/lowhaio_aws_sigv4_unsigned_payload-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "3e768bd04f078c21536d5e0cd06fe2fe", "sha256": "d61aa8db3b888e6ffb97a9bf008b12a887577c372d9e415baa0ac8f513c58a38" }, "downloads": -1, "filename": "lowhaio_aws_sigv4_unsigned_payload-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "3e768bd04f078c21536d5e0cd06fe2fe", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 4332, "upload_time": "2019-05-20T18:01:27", "url": "https://files.pythonhosted.org/packages/46/a9/23d6bd7b7caf2b0dc36502f11b5324d62858ac22986bb59f720d0d3417ad/lowhaio_aws_sigv4_unsigned_payload-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "43e77f43ccf176a5ce22b426b05f1849", "sha256": "5acc181f775820cd64657fb62aaff3adc63822ef1d995488c86feb98bb74e1eb" }, "downloads": -1, "filename": "lowhaio_aws_sigv4_unsigned_payload-0.0.2.tar.gz", "has_sig": false, "md5_digest": "43e77f43ccf176a5ce22b426b05f1849", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 3030, "upload_time": "2019-05-20T18:01:29", "url": "https://files.pythonhosted.org/packages/b1/3d/c7fd1690ed51880ca78ad3e9bec594d2c7bd00a001f967fa2d074c71f9b1/lowhaio_aws_sigv4_unsigned_payload-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "c4ddf9625d5ca78b1fe0b5a5dff3ba2c", "sha256": "a54f8a4e768d2ca39a2b7128ea30aeade6694822fb5527e535f31ddd2e74402d" }, "downloads": -1, "filename": "lowhaio_aws_sigv4_unsigned_payload-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "c4ddf9625d5ca78b1fe0b5a5dff3ba2c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 4294, "upload_time": "2019-06-15T18:11:56", "url": "https://files.pythonhosted.org/packages/ed/b9/a4d7009b6531e63743fcea94a18fa5bb4a643a6024c757159050b8d252f5/lowhaio_aws_sigv4_unsigned_payload-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "495681fc29b8233cb083049acca466ee", "sha256": "aac529fe4b614afcf2b5213bbf74c00c1807b16ee439109c6cd415b5124d192e" }, "downloads": -1, "filename": "lowhaio_aws_sigv4_unsigned_payload-0.0.3.tar.gz", "has_sig": false, "md5_digest": "495681fc29b8233cb083049acca466ee", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 2992, "upload_time": "2019-06-15T18:11:57", "url": "https://files.pythonhosted.org/packages/52/29/b63ceff3660ee63e7521d866f27b451b33ff91b95ff0cbb982ceaf1bad90/lowhaio_aws_sigv4_unsigned_payload-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "8b3b918b82edfa6a4c5c71e748010df1", "sha256": "93b8f92166bbc626402d376f3455a25ebdbf78ba3534dbf55a17cb98342a6e54" }, "downloads": -1, "filename": "lowhaio_aws_sigv4_unsigned_payload-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "8b3b918b82edfa6a4c5c71e748010df1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 4289, "upload_time": "2019-07-19T15:46:44", "url": "https://files.pythonhosted.org/packages/79/04/683f65f17c43a96efec6154356633048db5a41268e9f39d5b00e9d3a2c75/lowhaio_aws_sigv4_unsigned_payload-0.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e53017ecc6b959836309204133c2c709", "sha256": "1f4f3dd535395bbab723068d6572ef2790cee6012fd0ce234ef1ca209b95b231" }, "downloads": -1, "filename": "lowhaio_aws_sigv4_unsigned_payload-0.0.4.tar.gz", "has_sig": false, "md5_digest": "e53017ecc6b959836309204133c2c709", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 2987, "upload_time": "2019-07-19T15:46:45", "url": "https://files.pythonhosted.org/packages/8f/02/184d55be8325344b91cda8985268e89b7a773a54167e4d64147e94ee7c96/lowhaio_aws_sigv4_unsigned_payload-0.0.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8b3b918b82edfa6a4c5c71e748010df1", "sha256": "93b8f92166bbc626402d376f3455a25ebdbf78ba3534dbf55a17cb98342a6e54" }, "downloads": -1, "filename": "lowhaio_aws_sigv4_unsigned_payload-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "8b3b918b82edfa6a4c5c71e748010df1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 4289, "upload_time": "2019-07-19T15:46:44", "url": "https://files.pythonhosted.org/packages/79/04/683f65f17c43a96efec6154356633048db5a41268e9f39d5b00e9d3a2c75/lowhaio_aws_sigv4_unsigned_payload-0.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e53017ecc6b959836309204133c2c709", "sha256": "1f4f3dd535395bbab723068d6572ef2790cee6012fd0ce234ef1ca209b95b231" }, "downloads": -1, "filename": "lowhaio_aws_sigv4_unsigned_payload-0.0.4.tar.gz", "has_sig": false, "md5_digest": "e53017ecc6b959836309204133c2c709", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 2987, "upload_time": "2019-07-19T15:46:45", "url": "https://files.pythonhosted.org/packages/8f/02/184d55be8325344b91cda8985268e89b7a773a54167e4d64147e94ee7c96/lowhaio_aws_sigv4_unsigned_payload-0.0.4.tar.gz" } ] }