stowrypy
A Python SDK for generating Stowry presigned URLs.
Installation
pip install stowrypy
Quick Start
from stowrypy import StowryClient
client = StowryClient(
endpoint="http://localhost:5708",
access_key="your-access-key",
secret_key="your-secret-key",
)
# Generate a presigned URL for downloading a file
get_url = client.presign_get("/files/document.pdf")
# Generate a presigned URL for uploading a file
put_url = client.presign_put("/files/upload.txt")
# Generate a presigned URL for deleting a file
delete_url = client.presign_delete("/files/old.txt")
Usage with HTTP Clients
import requests
from stowrypy import StowryClient
client = StowryClient(
endpoint="http://localhost:5708",
access_key="your-access-key",
secret_key="your-secret-key",
)
# Download a file
get_url = client.presign_get("/files/document.pdf")
response = requests.get(get_url)
content = response.content
# Upload a file
put_url = client.presign_put("/files/upload.txt")
requests.put(put_url, data=b"Hello, World!")
# Delete a file
delete_url = client.presign_delete("/files/old.txt")
requests.delete(delete_url)
API Reference
StowryClient
StowryClient(endpoint: str, access_key: str, secret_key: str)
Creates a new Stowry client.
| Parameter | Type | Description |
|---|---|---|
endpoint |
str |
Stowry server URL (e.g., http://localhost:5708) |
access_key |
str |
Access key ID |
secret_key |
str |
Secret access key |
Methods
presign_get
presign_get(path: str, expires: int = 900) -> str
Generates a presigned URL for GET requests.
| Parameter | Type | Default | Description |
|---|---|---|---|
path |
str |
- | Object path (must start with /) |
expires |
int |
900 |
URL validity in seconds (1-604800) |
presign_put
presign_put(path: str, expires: int = 900) -> str
Generates a presigned URL for PUT requests.
| Parameter | Type | Default | Description |
|---|---|---|---|
path |
str |
- | Object path (must start with /) |
expires |
int |
900 |
URL validity in seconds (1-604800) |
presign_delete
presign_delete(path: str, expires: int = 900) -> str
Generates a presigned URL for DELETE requests.
| Parameter | Type | Default | Description |
|---|---|---|---|
path |
str |
- | Object path (must start with /) |
expires |
int |
900 |
URL validity in seconds (1-604800) |
generate_presigned_url
generate_presigned_url(operation: str, path: str, expires: int = 900) -> str
S3-compatible interface for generating presigned URLs.
| Parameter | Type | Default | Description |
|---|---|---|---|
operation |
str |
- | get_object, put_object, or delete_object |
path |
str |
- | Object path (must start with /) |
expires |
int |
900 |
URL validity in seconds (1-604800) |
URL Expiration
- Default: 900 seconds (15 minutes)
- Minimum: 1 second
- Maximum: 604800 seconds (7 days)
Signing Scheme
This SDK implements Stowry's native signing scheme. URLs are signed using HMAC-SHA256 with the following query parameters:
| Parameter | Description |
|---|---|
X-Stowry-Credential |
Access key ID |
X-Stowry-Date |
Unix timestamp (seconds) |
X-Stowry-Expires |
Validity in seconds |
X-Stowry-Signature |
Hex-encoded HMAC-SHA256 signature |
For AWS Signature V4 compatibility, use boto3. The Stowry server supports both signing schemes.
License
MIT
Metadata
Release files for stowrypy 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| stowrypy-0.2.0.tar.gz | 6.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| stowrypy-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 14.6 kB
Release files / stowrypy-0.2.0.tar.gz
| Download URL | stowrypy-0.2.0.tar.gz |
|---|---|
| Size | 6.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
50e94cc98793fa06fa4184c7d355ceecc2e08dd661f2af55c8746b6318440ad0
|
|
BLAKE2b-256 checksum How to use checksums |
09afe5741698aa9cde0ea243835bc9d3f9caf241ad407feadd61b8e5a6100e4b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 11, 2026.
Transparency logRelease files / stowrypy-0.2.0-py3-none-any.whl
| Download URL | stowrypy-0.2.0-py3-none-any.whl |
|---|---|
| Size | 8.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
429b35836217db72bd29823ad36423f0f9de86d3a887a8837f68937afd172f45
|
|
BLAKE2b-256 checksum How to use checksums |
13393ecdbe85af9bf26a47a3b4c5139454278655759f08303b765567d95024da
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 11, 2026.
Transparency log