--- id: aws-request-signer version: "1.2.0" license: MIT license_treatment: permissive maintenance: active --- # aws-request-signer — A python library to sign AWS requests using AWS Signature V4. License: permissive · Maintenance: active · Downloads: 148.0K/mo ## What it is and what it does aws-request-signer is a lightweight Python library that handles AWS Signature V4 request signing for HTTP requests. It generates the cryptographic signatures and authorization headers needed to authenticate requests to AWS services and AWS-compatible endpoints like MinIO. The library is intentionally unopinionated—it works with any HTTP client (requests, aiohttp, etc.) and requires no external dependencies, making it easy to integrate into existing projects. The package supports three signing workflows: adding authorization headers directly to requests, pre-signing URLs for temporary access, and signing S3 POST policies for HTML form uploads. It includes an optional authentication helper for the requests library but can be used standalone with any HTTP transport. The codebase is actively maintained, supports Python 3.6.1 and newer, and has no known security vulnerabilities. Use it for: - Sign requests to upload or download files from S3 or MinIO buckets programmatically - Generate pre-signed URLs for temporary, shareable access to S3 objects without exposing credentials - Authenticate API calls to AWS services (DynamoDB, Lambda, etc.) from custom HTTP clients - Sign S3 POST policies for browser-based file uploads directly to S3 - Integrate AWS request signing into async applications using aiohttp or similar libraries ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Signs HTTP requests using AWS Signature V4, generating authorization headers, pre-signed URLs, and S3 POST policies for AWS and compatible services. Yes. The package solves a specific, well-defined problem (AWS Signature V4 signing) with zero dependencies, active maintenance, and no security issues. Install it if you need to sign AWS requests outside the official SDK or in environments where the full boto3 library is overkill. ## Install pip install aws-request-signer uv add aws-request-signer poetry add aws-request-signer ## Installing aws-request-signer Before you install: Low friction: pure Python, no runtime dependencies, and actively maintained with recent commits. Supports Python 3.6.1 through current versions. License in practice: MIT license permits commercial and private use with minimal restrictions; you may use, modify, and distribute freely provided you retain the license notice. Quickstart: pip install aws-request-signer from aws_request_signer import AwsRequestSigner import hashlib signer = AwsRequestSigner('us-east-1', 'access_key', 'secret_key', 's3') headers = signer.sign_with_headers('PUT', 'http://s3.example.com/bucket/key', {}, hashlib.sha256(b'data').hexdigest()) Verify before relying: - Whether the library works with all AWS services or only S3-compatible endpoints - Performance characteristics when signing high volumes of requests - Compatibility with async HTTP clients beyond the aiohttp mention in the description ## Package facts - License: MIT (permissive) - Python support: supports_current - Install friction: low - Maintenance: active - Downloads: 148.0K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags AWS signature V4 signing, sign HTTP requests AWS, AWS request authentication, S3 pre-signed URLs, AWS authorization headers, minio S3 signing, AWS request signer, aws-authentication, http-signing, s3-compatible [View on SkillFed](https://skillfed.io/packages/aws-request-signer) · [View on PyPI](https://pypi.org/project/aws-request-signer/)